gpt4 book ai didi

python - 为什么python json模块在同一个文件上产生不同的编码

转载 作者:太空宇宙 更新时间:2023-11-04 10:17:29 24 4
gpt4 key购买 nike

我正在尝试解析包含一些芬兰字符的 json。一个 goog 的例子是一个叫做 Etelä-Karjala 的地区。当我将 json 作为文件打开然后使用 json.load 加载时,我已经在本地工作了。我为这个区域获得的 unicode 是 u'Etel\xe4-Karjala'。

但是我的下一步是在服务器上做同样的事情,并且 json 存储在我必须从中检索它的某个 url 中。我使用了 json.loads(requests.get(url).text),我为同一区域获得的 unicode 现在是 u'Etel\xc3\xa4-Karjala'。

即使输入文件相同,为什么我会得到这些不同的结果?你能建议一个解决方法或一个好的模式来从一个不会导致这个问题的 url 加载 json 吗?

这是重现问题的示例:

import requests
import json

# Example with loading from request
r = requests.get('http://becs.aalto.fi/~smirnod1/maakunnat.geojson')
geo1 = json.loads(r.text)
test1 = geo1['features'][5]['properties']['text']
# test1 = u'Etel\xc3\xa4-Karjala'

然后,我下载此 json 并尝试将其作为文件打开(这是我在开发应用程序时使用的方法)。

# Example with loading from file
with open('/Users/dmitrysmirnov/Downloads/maakunnat.geojson') as f:
geo2 = json.load(f)
test2 = geo2['features'][5]['properties']['text']
# test2 = u'Etel\xe4-Karjala'

我假设 u'Etel\xe4-Karjala'(或测试 2 的结果)应该是我的目标。或者至少这是不会破坏应用程序的结果。

最佳答案

服务器配置错误。要么告诉它报告文件编码为 UTF-8,要么仅以 ASCII 编码 JSON。

关于python - 为什么python json模块在同一个文件上产生不同的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34452460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com