Python 处理JSON响应中的转义unicode字符
我收到了一份像这样的地点名单Python 处理JSON响应中的转义unicode字符,python,json,python-2.7,unicode,Python,Json,Python 2.7,Unicode,我收到了一份像这样的地点名单 region_response = json.loads(requests.get(region_req_url).text) 许多名称在响应中都有类似于Tor\u00f6 Stenstrand的字符,其中地名是ToröStenstrand 然后,我将一些接收到的元素添加到字典中,并将其保存到新的JSON文件中 with open('spots.json', 'w') as wf: json.dump(results, wf, skipkeys=False
region_response = json.loads(requests.get(region_req_url).text)
许多名称在响应中都有类似于Tor\u00f6 Stenstrand
的字符,其中地名是ToröStenstrand
然后,我将一些接收到的元素添加到字典中,并将其保存到新的JSON文件中
with open('spots.json', 'w') as wf:
json.dump(results, wf, skipkeys=False, ensure_ascii=True, indent=4)
生成的文件还包含转义字符,如\u00f6
,但我需要它具有实际的表示形式,如ö
到目前为止,我的工作是在,特别是在和
如果之前已经回答过,或者如果我的上述描述/假设不正确,我表示歉意-我已经尝试解决这个问题很长时间了,但我认为我对该领域的了解还不够,无法确切知道我应该寻找或阅读什么!任何帮助/建议/建议都将不胜感激。我曾经使用
io
模块解决过这个问题,如下所示
import io
j = {'d': '中', 'e': 'a'}
with io.open('myfile.json', 'w', encoding='utf8') as json_file:
json.dumps(j, json_file, ensure_ascii=False)
输出:
{"d": "中", "e": "a"}'
首先,我在json.loads中添加了编码
response = requests.get(region_req_url)
response = requests.utils.get_unicode_from_response(response)
region_response = json.loads(response, encoding='utf-8')
在尝试了Sijan上面的答案之后,我发现了一些错误(如评论中所示),在尝试修复错误时,我遇到了一些问题,并且这个解决方案起到了作用。所以要写入我的JSON文件,我正在做
with io.open("results.json",'w', encoding="utf-8") as outfile:
outfile.write(unicode(json.dumps(results, ensure_ascii=False, indent=4)))
现在,地名正在写入JSON文件,如ToröStenstrand
谢谢您的回答!我收到一个错误,因为我的字典包含的字符串不是unicodeTypeError:必须是unicode,而不是str
——因此像\u00f6
这样的转义字符是字符串格式,需要转换为unicode。我尝试了unidict={k.decode('utf8'):v.decode('utf8')用于k,v在结果中。items()
来自,但获取错误AttributeError:'dict'对象没有属性“decode”
,所以我想我在这里遗漏了一些东西。