首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:无法将字符串转换为浮点型: E-3

ValueError:无法将字符串转换为浮点型: E-3
EN

Stack Overflow用户
提问于 2015-04-16 02:14:09
回答 2查看 1.1K关注 0票数 0

我正在尝试访问Microsoft access数据库表中的一些列,该表包含双精度类型的数字,但我得到了用于查询数据库的title.The代码中提到的错误,如下所示,该错误发生在cur.execute(...)命令被执行。基本上,我正在尝试过滤掉在特定时间间隔内捕获的数据。如果我在cur.execute(....)中排除了包含double数据类型的列CM3_Up、CG3_Up、CM3_Down、CG3_Down。命令我不会得到这个错误。同样的逻辑也被用来访问其他表中的双精度数据类型,它工作得很好,我不确定出了什么问题。

代码:

代码语言:javascript
复制
start =datetime.datetime(2015,03,28,00,00)
a=start
b=start+datetime.timedelta(0,240)
r=7
while a < (start+datetime.timedelta(1)):
    params = (a,b)
    sql = "SELECT Date_Time, CM3_Up, CG3_Up, CM3_Down, CG3_Down FROM
          Lysimeter_Facility_Data_5 WHERE Date_Time >= ? AND Date_Time <= ?"
    for row in cur.execute(sql,params):
        if row is None:
            continue
        r = r+1
        ws.cell(row = r,column=12).value = row.get('CM3_Up')
        ws.cell(row = r,column=13).value = row.get('CG3_Up')
        ws.cell(row = r,column=14).value = row.get('CM3_Down')
        ws.cell(row = r,column=15).value = row.get('CG3_Down')

    a = a+five_min
    b = b+five_min
wb.save('..\SE_SW_Lysimeters_Weather_Mass_Experiment-02_03_26_2015.xlsx')

完整的错误报告:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\DB_PY\access_mdb\db_to_xl.py", line 318, in <module>
    for row in cur.execute(sql,params):
  File "build\bdist.win32\egg\pypyodbc.py", line 1920, in next
    row = self.fetchone()
  File "build\bdist.win32\egg\pypyodbc.py", line 1871, in fetchone
    value_list.append(buf_cvt_func(alloc_buffer.value))
ValueError: could not convert string to float: E-3
EN

回答 2

Stack Overflow用户

发布于 2015-04-16 04:31:58

听起来你会收到像'2.34E-3‘这样的字符串,所以请尝试转换。我不知道Python,但在C#中可能是这样的:

代码语言:javascript
复制
ws.cell(row = r,column=12).value = Convert.ToDouble(row.get('CM3_Up'))
ws.cell(row = r,column=13).value = Convert.ToDouble(row.get('CG3_Up'))
ws.cell(row = r,column=14).value = Convert.ToDouble(row.get('CM3_Down'))
ws.cell(row = r,column=15).value = Convert.ToDouble(row.get('CG3_Down'))
票数 0
EN

Stack Overflow用户

发布于 2015-05-01 15:06:33

关于这个讨论:Python: trouble reading number format

问题可能是e应该是d,就像:

代码语言:javascript
复制
float(row.get('CM3_Up').replace('E', 'D'))

虽然听起来很奇怪,但我对Python知之甚少。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29657740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档