それほど賢くないプログラムによってエクスポートされた、Pythonの不正な挿入ステートメントを修正するための賢い解決策があるかどうか疑問に思っていました。文字列に一重引用符が含まれる文字列には、2つの一重引用符は追加されませんでした。少し簡単にするために、挿入されるすべての値は文字列です。
だからそれは持っています:
INSERT INTO addresses VALUES ('1','1','CUCKOO'S NEST','CUCKOO'S NEST STREET');
それ以外の:
INSERT INTO addresses VALUES ('1','1','CUCKOO''S NEST','CUCKOO''S NEST STREET');
明らかに、これには複数の行があり、囲んでいる一重引用符も置き換えたくありません。
分割と結合を使用することを考えていましたが、ループでループしているときに分割値を簡単に更新する方法がわかりません。申し訳ありませんが、私は初心者です。以下のようなもので、#updatebitの実行方法がわかりません
import sys
fileIN = open('a.sql', "r")
line = fileIN.readline()
while line:
bits = line.split("','")
for bit in bits:
if bit.find("'") > -1:
#update bit
line_out = "','".join(bits)
sys.stdout.write(line_out)
line = fileIN.readline()
ありがとう