【问题标题】:How do I join integers, Decimal() and datetime.datetime() in a list?如何在列表中加入整数、Decimal() 和 datetime.datetime()?
【发布时间】:2015-01-23 17:32:51
【问题描述】:

我正在使用 pyodbc 从 SQL 数据库返回行,我可以很好地连接并获取所有行。但是现在我很困惑如何处理返回的数据。我想将返回列表中的所有值加入到一个字符串中,然后我可以将其写入文件。但我不确定如何处理列表中的多种数据类型。

这是导致列表的基本代码:

key = "03001001"
cursor.execute('''select * from table_name where key='{}' '''.format(key))
rows = cursor.fetchall()
for x in rows:
    print(x)

当我print(x) 它返回以下行:

('03001001', 2, datetime.datetime(2014, 11, 13, 4, 30), 0, Decimal('-0.1221'), 5, 0, 0, 0, datetime.datetime(2014, 11, 13, 14, 30), datetime.datetime(2014, 11, 13, 4, 30, 12), 0)

我希望它只是一个制表符分隔的字符串。

【问题讨论】:

  • 你可以用str函数将一个元素变成一个字符串,你可以用join函数把一个字符串列表连接起来。

标签: python pyodbc python-datetime


【解决方案1】:
print('\t'.join(map(repr, x)))

会导致

'03001001'  2   datetime.datetime(2014, 11, 13, 4, 30)  0   Decimal('-0.1221')5 0   0   0   datetime.datetime(2014, 11, 13, 14, 30) datetime.datetime(2014, 11, 13, 4, 30, 12)  0

如果您想要人类可读的日期和十进制输入,请使用 str 而不是 repr(如 Matti John 的回答):

print('\t'.join(map(str, x)))

将打印

03001001    2   2014-11-13 04:30:00 0   -0.1221 5   0   0   02014-11-13 14:30:00    2014-11-13 04:30:12 0

【讨论】:

  • 谢谢 Sebastian,感谢您的及时回复!我会试试看!
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
相关资源
最近更新 更多