Python 非 ascii 字符的字符串/字节编码

Python string / bytes encoding with non ascii characters

我需要编写一个非常简单的函数来读取 json 文件并将一些内容写回 csv 文件。 问题是输入的 json 文件有奇怪的编码格式,例如:

{
"content": "b\"Comment minimiser l'impact environnemental d\xe8s la R&D des proc\xe9d\xe9s micro\xe9lectroniques."
}

我要回信

Comment minimiser l'impact environnemental dès la R&D des procédés microélectroniques.

第一个问题是 'b' 所以内容应该作为字节数组读取,但它被读取为字符串。 第二个是如何替换奇怪的字符? 谢谢

你可以使用这样的东西:

json_file_path = 'your_json_file.json'

with open(json_file_path, 'r', encoding='utf-8') as j:
    # Remove problematic "b\ character
    j = j.read().replace('\"b\',"");
    # Process json
    contents = json.loads(j)

# Decode string to process correctly double backslashes
output = contents['content'].encode('utf-8').decode('unicode_escape')

print(output)
# Output
# Comment minimiser l'impact environnemental dès la R&D des procédés microélectroniques.