我从source.sql(sql脚本)文件中读取
INSERT INTO `Tbl_abc` VALUES (1111, 2222, 'CLEMENT', 'taya', 'MME', 'Gérant', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4688, 0, NULL, NULL, 'MAILLOT 01/02/09', 'MAILLOT 01/04/09', NULL, NULL);
写入dest.sql并将我的列表格式化
我遇到了编码问题,例如:
Gérant= G\xc3\xa9rant
我在做什么
def DataMigration(dest, source, tbl_name, return_data=True):
'''
'''
data = []
for ln in codecs.open(source, 'r', "utf-8").xreadlines():
replace1 = ln.replace("INSERT INTO `"+tbl_name+"` VALUES (", "")
replace2 = replace1.replace(");", "")
list_replace = replace2.split(',')
s = list_replace
data.append(list_replace)
if return_data == True:
ouputdata = [d for d in data if d[1] == ' 0' and d[6]==' 0']
return ouputdata
if return_data == False:
return data
我打印 print DataMigration('dest.sql','。source.sql','Tbl_abc',False)
输出
[['1111', ' 2222', " 'CLEMENT'", " 'taya'", " 'MME'", " 'G\xc3\xa9rant'", ' NULL', ' NULL', ' NULL', ' NULL', ' NULL', ' NULL', ' NULL', ' 4688', ' 0', ' NULL', ' NULL', " 'MAILLOT 01/04/09'", " 'MAILLOT 01/04/09'", ' NULL', ' NULL']]
But My Ouput file still has the problem.Any Could help me ?
答案 0 :(得分:1)
当您写入.sql文件时,请使用.encode("utf-8")
。
打开文件
fileObj = codecs.open( "someFile", "r", "utf-8" )
让我们说你看了
data=fileOjb.read()
......对数据做点什么
open("newfile","w").write(data.encode("utf-8"))
答案 1 :(得分:0)
您好检查您的文件.sql的编码可能不是utf-8!
答案 2 :(得分:0)
将您的工作数据存储在Python内部作为Unicode(在读取时使用解码),并始终使用编码写出。
在您的实例中,您需要知道数据库的编码以了解正确的输出编码。