python - 使用 python json.loads 解析 unicode 输入

标签 python django json unicode

在 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/

相关文章:

python - 使用python,如何在目录中找到不同的python脚本然后运行它

django - 在 Django-rest-framework HyperlinkedModelSerializer 上解析域名

django - 在 Django 表单中重载错误消息

python - 在 Django 中保留重定向之间的原始请求链接?

c# - 在 AWS Lambda (C#) 中反序列化嵌套的 JSON 字符串

python - 如何仅给出长度递归地构建列表?

Python 3 正则表达式单词边界不清楚

python - 为什么 CNN 模型难以对有色 MNIST 进行分类?

json - 将 NSData 对象转换为 NSDictionary 时出现问题

json - 如何在 JSON Schema (Ruby) 中生成所需的 "patternProperty"