用于将 csv 转换为转储到数据库的 Python 脚本



我已经将文件导出为CSV。在 excel 中,数据全部在第一列(每行四列),看起来像这样——

like   "name"        "email"           "message"
"yes"    "John Smith"  "John@gmail.com"  "My message"
 ...etc.

当我导入文件时,这就是我得到的——

'"""like"",""name"",""email"",""message"""r""
"yes"",""John Smith"",""John@gmail.com"",""My message"""'

我将如何在 Python 中转换此字符串,以便我可以将其插入数据库?我想我需要将每一行分成一个列表,并运行一个 for 循环以将第一行与所有其他行一起压缩。然后从元组列表中创建一个字典并将其插入到数据库中。这种方法看起来正确吗?我如何将这个奇怪的字符串转换为那个 - 我很难这样做?谢谢。

更新

当然,这不是最有效/最实用的方法......

从结尾反转——

{'like':'yes','name':'John Smith','email': 'John@gmail.com, 'message': 'My message'}

这可以通过做

——
zip[('like','name','email','message'),('yes','name','email','message')]

并使用 for 循环,以便在 (tuple[0],tuple[n]) 上执行 zip 操作。

那么,我将如何将原始 python 字符串转换为元组列表,以便我可以将其添加到数据库中 - 有没有更好的方法来做到这一点(不包括使用 python 模块轻松完成此操作)?

使用 Python 的标准库解析 CSV 文件并提取需要放入数据库的数据:

import csv
with open('some.csv', 'rb') as f:
    reader = csv.reader(f, delimiter=' ')
    for row in reader:
        print row

来源: http://docs.python.org/library/csv.html

最新更新