字典值为unicode时出错

时间:2017-07-15 07:48:45

标签: python json csv unicode

我正在制作一个python代码,该代码将在将JSON文件转换为csv的服务器上运行。 (通过网址提供的JSON)

除非密钥的值是unicode,否则一切进展顺利。

像这样:

{u'name':u'\xc3\x86\xc3\x9f\xc3\xb8\xc3\xa4\xc3\xae\xc3\xa8t\xc3\xae\xc3\xbf' , u'otherinfo' : u'info'}

出现此错误:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)

我知道python尝试解码unicode但失败了,但我不知道如何解决这个问题。

这是我到目前为止所做的:

#!/usr/bin/env python  
import urllib2 as url
import json
import ast

print("Extracting data from API")
request = url.Request('url')
data = url.urlopen(request).read()
data = data.decode("iso-8859-1")
print("changed")
data = ast.literal_eval(data)
data = json.dumps(data)



import json, csv

outfile = open("output.csv", "w")
fieldnames = ['names','otherinfo']
writer = csv.DictWriter(outfile , fieldnames=fieldnames, lineterminator='\n' )

print("Writing csv file")
row = json.loads(data)
for player in row["rows"]:
    print(player)
    writer.writerow(player)



outfile.close()

print("Writing complete")

0 个答案:

没有答案