Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 处理JSON响应中的转义unicode字符_Python_Json_Python 2.7_Unicode - Fatal编程技术网

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

谢谢您的回答!我收到一个错误,因为我的字典包含的字符串不是unicode
TypeError:必须是unicode,而不是str
——因此像
\u00f6
这样的转义字符是字符串格式,需要转换为unicode。我尝试了
unidict={k.decode('utf8'):v.decode('utf8')用于k,v在结果中。items()
来自,但获取错误
AttributeError:'dict'对象没有属性“decode”
,所以我想我在这里遗漏了一些东西。