将dbfpy中的数据插入MySQL的最佳方法是什么?

0 投票
2 回答
758 浏览
提问于 2025-04-17 17:32

我正在使用dbfpy模块来读取DBF文件中的数据,目的是把这些数据写入相应的MySQL表格。以下是我代码的大致版本:

###################
# BEGIN CONFIG 
###################

import_root = '/Users/shawn/Dropbox/ITistic Inc/Digital Aspire/Clients/MVP/Automated Sales Report Project/pdq dbf export 1.30.2013'
concept_id = 1

###################
# END CONFIG 
###################


import os
import datetime
from dbfpy import dbf
import MySQLdb


# Connect to MySQL
db = MySQLdb.connect('localhost', 'dbposireporting', 'posi', 'dbposireporting')
cur = db.cursor()


discount = dbf.Dbf(os.path.join(path, 'DISCOUNT.DBF'))

for rec in discount:
    print rec['date']
    print

    # LINE BELOW NOT WORKING:
    cur.execute("INSERT INTO discount VALUES (%s, %s, %s, %s, %s, %s)", rec)

discount.close()

db.close()

我想插入的MySQL表格里有一个额外的字段,我需要用脚本顶部设置的concept_id值来填充。这个值并不在DBF记录(rec)中。我该如何插入这些数据呢?

2 个回答

0

如果有任何字段是字符串类型,你需要把它们用引号括起来,这样SQL语句才有效。

0

我觉得你可以把 rec 替换成 cur.execute() 这一行里的

tuple(rec) + (concept_id,)

哦,还有别忘了再加一个 %s

撰写回答