我解析一个csv文件(在windows中创建)并尝试使用我创建的模型填充数据库表。Django DB插入不正确的字符串值
我收到此错误:
pl = PriceList.objects.create(code=row[0], description=row[1],.........
Incorrect string value: '\xD0h:NAT...' for column 'description' at row 1
我的表和说明字段使用UTF-8和utf8_general_ci排序规则。 我试图插入的实际值是这样的。
HOUSING:PS-187:1g\xd0h:NATURAL CO
我不知道有任何字符串处理我应该做,以克服这个错误。 我觉得我用一个简单的Python脚本之前使用conn.escape_string()来填充数据库和它的工作(如帮助)
感谢
我不想读取整个文件并把它传递给一个函数,因为该文件包含125K行。另外,'HOUSING:PS-187:1g \ xd0h:NATURAL CO'.encode('utf-8')的结果是:UnicodeDecodeError:'ascii'编解码器无法解码位置17中的字节0xd0:序号不在范围内(128 ) – Dim 2011-05-07 19:00:59
这不会读取整个文件,它将包装CSV阅读器并与csv_reader一起与unicode_csv_reader进行交互。这听起来像你有一个Python数据编码问题,而不是Django问题。 – Ted 2011-05-07 19:07:38
有没有什么办法可以消毒输入,所以我可以解决这个问题? – Dim 2011-05-07 19:23:48