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

时间:2011-05-09 09:32:42

标签: python sql

我已将文件导出为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循环以将第一行与所有其他行压缩。然后从元组列表中创建一个dict并将其插入到db中。这种方法看起来是否正确?我怎么把这个奇怪的字符串转换成那个 - 我很难尝试这样做?谢谢。

更新

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

从最后开始 -

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

这可以通过做 -

来实现
zip[('like','name','email','message'),('yes','name','email','message')]

使用for循环,因此zip将在(tuple[0],tuple[n])上执行。

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

1 个答案:

答案 0 :(得分:2)

使用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