对于我的生活,我无法弄清楚我做错了什么
import urllib
import csv
with open("mydb.txt", 'rb') as f:
readr = csv.reader(f, delimiter = ",", quotechar="'")
for row in readr:
mylist = []
for i in row:
code=urllib.unquote(i)
mylist.append(code)
print mylist
问题是我不断得到类似的东西:
['S\xc3\xa3o Desid\xc3\xa9rio', 'BA', 'Convencional', '1759', '-12.52332', '-45.59509']
这是'S\xc3\xa3o Desid\xc3\xa9rio'
是什么?它应该是SãoDesidário。我该如何解决?
答案 0 :(得分:0)
您正在打印列表对象而不是其成员。尝试使用str.join
根据自己的喜好格式化列表。
您应该考虑" unicode sandwich"方法("外部字节,内部unicode")。输入后立即将所有输入转换为unicode
,并在输出时将其转换为编码字节。
此计划可能适合您:
import urllib
import csv
with open("mydb.txt", 'rb') as f:
readr = csv.reader(f, delimiter = ",", quotechar="'")
for row in readr:
mylist = []
for i in row:
i = i.decode('utf-8')
code=urllib.unquote(i)
mylist.append(code)
print type(code),code
print u','.join(mylist).encode('utf-8')