0

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 値を入力する必要がある 1 つの追加フィールドが含まれています。その値は DBF レコード (rec) の一部ではありません。このデータを挿入する最良の方法は何ですか?

4

2 に答える 2

0

行を次recのように置き換えることができると思いますcur.execute()

tuple(rec) + (concept_id,)

ああ、もう 1 つ追加することを忘れないでください%s

于 2013-03-26T05:35:44.840 に答える
0

いずれかのフィールドが文字列の場合、SQL が有効になるように引用符で囲む必要があります。

于 2014-10-30T21:22:32.327 に答える