python - 将制表符分隔的值插入数据库

标签 python mysql mysql-python

我有一个制表符分隔的 txt 文件,其中行由制表符分隔,行由换行符分隔。它实际上是这样的:

476502291\t\tLF3139812164\t\t标题 1\t child 与家庭\nGRAV_2011\t\t完整图片\t独立\n [...等...]

请注意,有时值是由两个制表符而不是一个制表符分隔的。

我需要将其插入到 mysql 表中,这应该会产生以下结果:

ID             title               genre
476502291      Title 1             Kids & Family
GRAV_2011      The Full Picture    Independent

如何读取制表符分隔的 txt 文件并运行 for 循环,以便使用 MySQLdb 将值插入名为 vendor 的表中?

>>> import MySQLdb
>>> conn = MySQLdb.connect (host = "localhost",
                             user = "me",
                             passwd = "password",
                             db = "my-db")
>>> cursor = conn.cursor ()
>>> # for loop  # how to read from the txt file to insert it as required?
>>>     # cursor.execute (INSERT...)
>>> conn.commit()
>>> conn.close()

最佳答案

第 1 步. 阅读 csv 模块。 http://docs.python.org/library/csv.html 。这就是你想要的。

with open('your_data_file.dat','r') as source:
    rdr= csv.reader( source, delimiter='\t', quotechar='')
    for row in rdr:
        # you have your columns with which to do your insert.
conn.commit()

第 2 步:同时阅读上下文管理器。

from contextlib import closing

with open('your_data_file.dat','r') as source:
    rdr= csv.reader( source, delimiter='\t', quotechar='')
    with closing(conn.cursor()) as cursor:
        for row in rdr:
            # you have your columns with which to do your insert.
conn.commit()

这将确保游标和文件正确关闭。

关于python - 将制表符分隔的值插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8841205/

相关文章:

php - 斯堪的纳维亚字母 (å ä ö) 显示不正确

python - 更新或插入 MySQL Python

python - 这段Python代码能写得更高效吗?

python - 包含应用于数组的真值检查的函数返回错误

javascript - 在 mysql 中通过别名获取行后无法生成 json 数据

mysql - 不等于 codeigniter 中的条件不起作用

Python Web Scraping - 试图从表格标签中获取数字

python - 无法使用列表理解从元组列表中删除元组

python - 以特定方式删除 mysqldb 中的重复行

python - MySQLdb 存储过程输出参数不起作用