MySQL Connector / Python抛出ValueError试图获取零填充值

时间:2018-12-17 16:16:57

标签: python mysql mysql-connector

我正在尝试使用MySQL Connector / Python处理数据库。连接成功建立,例如我能够将新数据插入表中。 SELECT查询对于正常的整数或char值也可以正常工作。

但是当我尝试以int列(小,中,大,无所谓)执行SELECT查询时,我遇到了ValueError: invalid literal for int() with base 0: '00002'

如何重复:

  • 创建一个表,其中类型为int unsigned zerofill的列之一(或任何其他类型为zerofill的整数)。例如,先执行CREATE TABLE test_table (id INT UNSIGNED ZEROFILL);,然后执行INSERT INTO test_table VALUES (1), (2), (3);

  • 尝试对包含零填充字段的SELECT查询执行cursor.execute(query),例如SELECT * FROM test_table;

应如何处理: 程序输出

ValueError: invalid literal for int() with base 0: '0000000001'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\user\Documents\testSQL.py", line 25, in <module>
    cursor.execute(query)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\cursor_cext.py", line 272, in execute
    self._handle_result(result)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\cursor_cext.py", line 163, in _handle_result
    self._handle_resultset()
  File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\cursor_cext.py", line 651, in _handle_resultset
    self._rows = self._cnx.get_rows()[0]
  File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\mysql\connector\connection_cext.py", line 273, in get_rows
    row = self._cmysql.fetch_row()
SystemError: <built-in method fetch_row of _mysql_connector.MySQL object at 0x000002555DDBC350> returned a result with an error set

当将数据库整数转换为python int()值时,似乎mysql-connector试图做int(some_number, base=0)。但这实际上是一个以10为底的数字。如何避免这种错误?

0 个答案:

没有答案