我有一个JSON文件,其中包含以下编码字符串:
"sender_name": "Horn\u00c3\u00adkov\u00c3\u00a1",
我正在尝试使用json
模块解析此文件。但是,我无法正确解码此字符串
使用.load()
方法解码JSON后得到的结果是'HornÃ\xadková'
。字符串应正确解码为'Horníková'
我阅读了JSON规范,了解到在\u
之后应该有4个十六进制数字,用于指定字符的Unicode数字。但在这个JSON文件中,UTF-8编码的字节似乎存储为\u
序列
这是什么类型的编码,以及如何在Python3中正确解析它
根据规范,这种类型的JSON文件甚至是有效的JSON文件吗
您的文本已经编码,您需要通过在字符串中使用
b
前缀向Python说明这一点,但是由于您使用的是json,并且输入需要是字符串,因此您必须手动解码编码的文本。由于您的输入不是字节,因此可以使用'raw_unicode_escape'
编码将字符串转换为字节而不进行编码,并防止open
方法使用其自己的默认编码。然后,您可以简单地使用上述方法来获得所需的结果注意,由于需要进行编码和解码,您必须读取文件内容并对加载的字符串执行编码,因此应该使用^{} 而不是^{}
我对JSON了解不够,无法判断这是否有效,但您可以使用
raw_unicode_escape
编解码器解析这些字符串:您正在读取的JSON写得不正确,从中解码的Unicode字符串必须使用错误的编码进行重新编码,然后使用正确的编码进行解码
下面是一个例子:
输出:
相关问题 更多 >
编程相关推荐