首页 > 解决方案 > read_sql:以 10 为底的 int() 的值错误无效文字:b'11+00'?

问题描述

我有一个数据库,我使用以下方法创建列:

c.execute('CREATE TABLE IF NOT EXISTS {} '
              '(timestamp timestamp, '
              'symbol TEXT, '
              'last_price REAL, '
              'bid_qty INT, '
              'bid REAL, '
              'ask REAL, '
              'ask_qty INT)'.format(symbol))

当我尝试通过以下语句使用“pandas.read_sql”时:

select_statement = 'select * from ' + key + ' order by timestamp DESC limit 80000'
m1df = pd.read_sql(select_statement, conn)

我收到以下错误:

回溯(最近一次通话最后):

文件“”,第 1 行,在文件“/home/ubuntu/.local/lib/python3.6/site-packages/pandas/io/sql.py”中,第 489 行,在 read_sql 中 chunksize=chunksize,文件“/home /ubuntu/.local/lib/python3.6/site-packages/pandas/io/sql.py”,第 1740 行,在 read_query 数据 = self._fetchall_as_list(cursor) 文件“/home/ubuntu/.local/lib/ python3.6/site-packages/pandas/io/sql.py”,第 1753 行,在 _fetchall_as_list 结果 = cur.fetchall() 文件“/usr/lib/python3.6/sqlite3/dbapi2.py”,第 70 行,在 convert_timestamp 小时、分钟、秒 = map(int, timepart_full[0].split(b":")) ValueError: int() 的无效文字,底数为 10:b'11+00'

当我尝试:

select_statement = 'select * from ' + key + ' DESC limit 80000'
m1df = pd.read_sql(select_statement, conn)

没有错误。我假设所选行没有时区“+00”问题。

我阅读了该问题,但无法找到解决方法。

标签: pythonpandassqlite

解决方案


推荐阅读