Python - UnicodeDecodeError:'charmap' 编解码器无法解码位置 44 中的字节 0x81:字符映射到 <undefined>

use*_*Geo 10 json python-3.x pandas jupyter-notebook

在 Python 3 Jupyter notebook 上使用 pandas,我得到了

UnicodeDecodeError: 'charmap' 编解码器无法解码位置 44 中的字节 0x81:字符映射到

尝试读取如下所示的 json 文件时出错:

{
    "Test1": {
        "A": "??????",
        "B": "????",
        "C": "???????????????????????"
    },
    "Test2": {
        "D": "{x} ??",
        "E": "CC ??? {x}",
        "F": "???????????????????????????",
        "G": "??{social_network}???????2?????????????????????????????????????????????????????????????",
    }
}
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

在此处查看完整的错误消息

import pandas as pd

json_df = pd.read_json('input.json')
json_df
Run Code Online (Sandbox Code Playgroud)

编辑:我也试过用 JSON 模块读取 json,它仍然是同样的错误。

pts*_*pts 11

您的.json文件编码为 UTF-8。pd.read_json尝试将其解码为 CP1252。您需要将其解码为 UTF-8:

import pandas as pd

json_df = pd.read_json('input.json', encoding='UTF-8')
json_df
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您正在读取文本文件并收到错误“python-unicodedecodeerror-charmap-codec-cant-decode-byte-0x81-in-position”

然后执行以下操作: 将文本文件转换为 CSV。

data=open('c:/.../path/.../filename.csv',encoding='utf-8')
data=data.read().lower()
Run Code Online (Sandbox Code Playgroud)