在 Python 中加载 JSON 字符串的最佳方式是什么?
我想像这样使用 json.loads 来处理 unicode:
import json
json.loads(unicode_string_to_load)
我还尝试提供值为“utf-16”的“encoding”参数,但错误并没有消失。
有错误的完整 SSCCE:
# -*- coding: utf-8 -*-
import json
value = '{"foo" : "bar"}'
print(json.loads(value)['foo']) #This is correct, prints 'bar'
some_unicode = unicode("degradé")
#last character is latin e with acute "\xe3\xa9"
value = '{"foo" : "' + some_unicode + '"}'
print(json.loads(value)['foo']) #incorrect, throws error
错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
6: ordinal not in range(128)
最佳答案
我使用“latin-1”将字符串类型转换为 unicode 字符串修复了错误:
UnicodeDecodeError: 'utf16' codec can't decode byte 0x38 in
position 6: truncated data
固定代码:
import json
ustr_to_load = unicode(str_to_load, 'latin-1')
json.loads(ustr_to_load)
然后就不会抛出错误了。
关于python - 使用 python json.loads 解析 unicode 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2234228/