0

私が持っているPythonコードは次のようになります

f = open('data.tsv', 'r')

for line in f:
    a = line.split("\t")
    e_id = a[1]
    name = a[2]
    start = a[3]
    end = a[4]
    loc = a[5]
    tags = a[6]
    url = a[7]
    cur = con.cursor(mdb.cursors.DictCursor)
    cur.execute("INSERT INTO data_table VALUES (" + e_id + "," + name + "," + start + "," + end + "," + loc + "," + tags + "," + url + ");")

データの「loc」部分にはコンマが含まれていることがよくあります。これは、その多くが「City, State」でフォーマットされているためです。MySQL はそれを値として解釈します。コンマは変数として保存されているため、直接コメントアウトすることはできません。これを回避する方法はありますか?

4

3 に答える 3

3

この形式でクエリを作成するときは注意してください。文字列を連結する前後には、コンマを入れる必要があります。例えば、

INSERT INTO data_table VALUES ('" + e_id + "','" + name + "','" + start + "','" + end + "','" + loc + "','" + tags + "','" + url + "');")

問題の解決に役立つことを願っています。

また、特定の python 構文を使用して挿入を実行できます。

cur.execute("INSERT INTO data_table VALUES (%s,%s,%s,%s,%s,%s,%s)",(e_id,name,start,end,loc,tags,url)); 
于 2013-05-31T14:46:24.887 に答える