[英]converting object value into float in python
我從 rrd 數據庫以元組形式返回時間戳,即信息變量將包含此
[(38177492.733055562, 38177482.886388876),(39370533.190833323, 40563588.018611118)]
在我的代碼中,我正在使用列表函數將元組 (38177492.733055562,38177482.886388876) 轉換為列表,然后我正在使用“索引”變量訪問元素,當我將此值傳遞給 fromtimestamp 函數時,它詢問我“浮點”值,所以怎么做我將列表對象轉換為浮點原始數據類型? 以下是整個代碼
def hello(request):
info = rrdtool.fetch('hello/test.rrd','AVERAGE','-r','3600','-s','1298264400','-e','1298350800')
datalist = list()
for index in range(0,len(info)):
val = list(info[index])
dt_obj = datetime.fromtimestamp(float(val[index]))
str=dt_obj.strftime("%d-%m-%Y %H:%M:%S")
datalist.append(str)
data = simplejson.dumps(info, indent=4)
return HttpResponse(data,mimetype='application/javascript')
我收到以下錯誤
a float is required
將代碼更改為 for index in range(0,len(info)) 后:我收到以下錯誤
invalid literal for float(): Out
你在做什么沒有多大意義,恐怕 - index
是info
列表的索引,而不是val
,它是該列表中的元組之一。
此外,您無需將列表轉換為元組即可訪問元組的元素。
您的縮進在循環開始的行中被破壞,並且當您縮進以返回info
的 json 版本時也是如此。
要解決您的問題,您可以首先在錯誤之前在行上打印val
、 val[index]
和type(val[index])
以檢查它們是否符合您的預期 - 顯然它們不是從你得到的錯誤。
此外,您根本不需要使用信息列表中的索引,您可以使用以下方法迭代列表中的值:
for val in info:
# I'm not sure if you want both values in the tuple here or just one...
print >> sys.stderr, "val =", val
dt_obj = datetime.fromtimestamp(val[0])
str=dt_obj.strftime("%d-%m-%Y %H:%M:%S")
datalist.append(str)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.