当我将一个json文件加载到Python中时,只要将文件视为字符串处理,就不会出现编码问题。然而,如果使用json.load加载文件或使用json.loads加载字符串,则所有空格字符都会变成"\xa0"。
以下代码可产生正常结果,打印json字符串而没有任何奇怪的"\xa0"标记。
以下代码可产生正常结果,打印json字符串而没有任何奇怪的"\xa0"标记。
with open(json_path) as f:
lines = f.readlines()
for line in lines:
print(line)
将文件加载为JSON格式时,突然发现空格字符被解释为“\xa0”。
with open(json_path) as f:
data = json.load(f)
print(data.keys())
给出以下结果:
dict_keys(['1.\xa0\lorem\xa0ipsum', '2.\xa0\lorem\xa0ipsum\xa0\lorem\xa0ipsum', '3.\xa0\lorem', '4.\xa0\lorem\xa0ipsum', '5.\xa0\lorem\xa0ipsum'])
使用json.loads加载字符串而不是文件会得到相同的结果:
with open(json_path) as f:
lines = f.read()
data = json.loads(s)
print(data.keys())
我正在使用Java和pdf-box构建一个PDF解析器。将标题结构解析到自己的JSON树中。我尝试将JSON文件转换为Java中的Hashmap,这个功能很好,因此JSON文件本身没有任何奇怪的问题。这是一个特定于Python的问题吗?是否有任何解释?