在使用fetchall()之前过滤mySQL数据,然后通过DataNitro将行传递到Excel

时间:2013-06-10 17:03:38

标签: python mysql excel python-2.7 mysql-python

我正在尝试简化这一点,因此它会提取任何数据并且没有任何冲突,但如果我有一个冒号的日期结构,并且我的某些产品使用反斜杠或类似字符的代码,我会发现错误。如果存在,可以在字符串中剥离或包含这些的任何方法吗?这是我使用MySQLdb的简单过程...

c = db.cursor()
exstring = "SELECT id,model,upc,date,cost FROM products"
CellRange("A5:I600").clear() # cleanup existing data
c.execute(exstring)
sh = c.fetchall()
for i, pos in enumerate(sh):
    Cell(5+i, 1).horizontal = pos #starts 5th row

这些日期类型的许多错误(日期时间)......

2013-06-01 05:15:02

获取27个/ basic_io.py错误的列表,以及未定义全局名称“logging”。

File "27/basic_io.py", line 352, in __setattr__
File "27/basic_io.py", line 238, in _set_horizontal
File "27/basic_io.py", line 607, in __setattr__
File "27/basic_io.py", line 352, in __setattr__
File "27/basic_io.py", line 167, in _set_value
Namerror: global name 'logging' is not defined

但如果我选择基本数据,那一切都很好。我想达到一个SELECT *的意义,它将拉回任何表结构,没有任何问题。如果不可能,那么可以过滤单个列。

2 个答案:

答案 0 :(得分:1)

我不确定27/basic_io.py文件是什么,但听起来问题是它无法处理来自Python的datetime模块的对象。

尝试SELECTdate列作为字符串而不是......

exstring = 'SELECT id,model,upc,DATE_FORMAT(date, "%Y-%m-%d"),cost FROM products'

您可以使用DATE_FORMAT()中的不同格式说明符来改变返回的格式。

答案 1 :(得分:1)

DataNitro在最新版本(https://datanitro.com/pro/auth/login)中添加了对日期时间类型的改进支持。尝试一下,看看它是否解决了问题 - 您应该能够在不使用日期格式的情况下运行原始脚本。

来源:我是DataNitro开发人员之一。