gpt4 book ai didi

Python MySQLdb 转换列表数据以从 SELECT 输出 CSV

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:53 25 4
gpt4 key购买 nike

我正在努力解决以下(相对简单的)问题。我在 MySQLdb 中使用 SELECT 查询,它返回以下数据:

select * from extension_recording where filename = "20091030_135711-out.wav";
+----+--------------+------+-------------------------+----------+--------+--------------------+---------------------------+--------+-----------------+------+-------+
| id | extension_id | flow | filename | filesize | unread | cr_date | callerid | length | callid | info | party |
+----+--------------+------+-------------------------+----------+--------+---------------------+---------------------------+--------+-----------------+------+-------+
| 1 | 41 | out | 20091030_135711-out.wav | 264684 | 1 | 2009-10-30 13:57:31 | Some user <01273123456> | 20 | 1256911031.5482 | | NULL |
+----+--------------+------+-------------------------+----------+--------+---------------------+---------------------------+--------+-----------------+------+-------+

我正在尝试以下列方式使用它:

cur.execute ("SELECT * FROM extension_recording WHERE filename = %s;", (file))
csv_result = cur.fetchone()
csv_list.append ([csv_result])

这会产生一个包含 Python 数据类型的列表:

print csv_list
(1L, 41L, 'out', '20091030_135711-out.wav', 264684L, '1', datetime.datetime(2009, 10, 30, 13, 57, 31), 'Some user <01273123456>', 20L, '1256911031.5482', '', None)

我需要将数据作为 MySQL 数据类型输出到 CSV,因此我需要适本地转换每个字段,即将 id 和 extension_id 字段转换为 int 而不是 long,并将日期转换为字符串。所有这一切的重点是我最终得到了一个像这样的 CSV 文件:

1,41,'out','20091030_135711-out.wav',264684,'1','2009-10-30 13:57:31','Some user <01273123456>',20,'1256911031.5482','',None

我可以看到我可能需要遍历 csv_result,但我无法在我的生活中看到如何对每种数据类型进行不同的处理。

最佳答案

您可以使用 csv 模块在事后自动转换回字符串,或者您可以使用自定义 conv< 初始化您的 Connection 对象 值覆盖默认类型转换字典,为您提供从 MySQL 返回的原始字符串的所有内容。只需意识到这意味着您必须手动进行所有转换,或者如果您希望在代码中的任何其他位置进行自动类型转换,则需要与同一个数据库建立第二个自动转换连接。

关于Python MySQLdb 转换列表数据以从 SELECT 输出 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14160397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com