簡體   English   中英

在python中將對象值轉換為浮點數

[英]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

你在做什么沒有多大意義,恐怕 - indexinfo列表的索引,而不是val ,它是該列表中的元組之一。

此外,您無需將列表轉換為元組即可訪問元組的元素。

您的縮進在循環開始的行中被破壞,並且當您縮進以返回info的 json 版本時也是如此。

要解決您的問題,您可以首先在錯誤之前在行上打印valval[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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM