Python json.load更改输入的字符串
大家好,我正在开发一个简单的程序,它从json文件中获取数据(通过html表单输入,由flask处理数据),并使用此数据调用API 所以我有一些类似这样的JSON:Python json.load更改输入的字符串,python,json,unicode,Python,Json,Unicode,大家好,我正在开发一个简单的程序,它从json文件中获取数据(通过html表单输入,由flask处理数据),并使用此数据调用API 所以我有一些类似这样的JSON: [{"id": "ßLÙ", "server": "NA"}] 我想将id发送到一个api调用,如以下示例所示: http://apicallnamewhatever+id=ßLÙ 但是,当我使用以下命令将json文件加载到我的app.py中时 ids = json.load(open('../names.json')) js
[{"id": "ßLÙ", "server": "NA"}]
我想将id发送到一个api调用,如以下示例所示:
http://apicallnamewhatever+id=ßLÙ
但是,当我使用以下命令将json文件加载到我的app.py
中时
ids = json.load(open('../names.json'))
json.load似乎将id从“ßLÙ”
更改为“ÃLÔ™'代码>
我不知道为什么在json.load期间会发生这种情况,但我需要找到一种方法将“ßLÙ”
引入api调用,而不是变形的“ÃLÔ™'
看起来您的名称.json
是用的“utf-8”
编码的,但您打开它时使用的是“windows-1252”
[*]或类似的格式。试一试
json.load(open('names.json', encoding="utf-8"))
您可能还应该对id
进行URL编码,而不是直接将其与服务器地址连接起来,大致如下:
urllib2.quote(idExtractedFromJson.encode("utf-8")
[*]感谢@jDo指出这一点,我最初猜错了代码页。您使用的是Python 2还是Python 3?如果是Python 3,那么调用open()
时您的语言环境设置是什么?您的编码可能是windows-1252<编码>“L”。编码(“utf8”)。解码(“windows-1252”)
-->“L”™'代码>