如何用Pandas读取孟加拉语JSON数据集?解决解码报错问题
解决含孟加拉语JSON数据集读取的ValueError问题
问题场景
使用以下代码读取包含孟加拉语的JSON文件时,触发ValueError: Unexpected character found when decoding array value错误:
import codecs import pandas as pd pd.read_json(codecs.open('/content/drive/MyDrive/content_colab_access/quotes_test.json', 'r', 'utf-8')) print(data.shape) data.head()
对应的JSON数据样例:
[ { "Quote": "যখন মানুষের খুব প্রিয় কেউ তাকে অপছন্দ করে না", "Author": "Humayun Ahmed", "Tags": [ "bangladesh"," bengali"," humayun-ahmed " ], "Popularity": 0.381, "Category": "life" } ]
正确读取方案
方案1:直接通过pd.read_json指定UTF-8编码
pandas的read_json本身支持直接指定编码参数,无需借助codecs.open,修改后代码如下:
import pandas as pd # 直接传入文件路径并指定encoding参数 data = pd.read_json('/content/drive/MyDrive/content_colab_access/quotes_test.json', encoding='utf-8') print(data.shape) data.head()
方案2:先通过json模块加载数据再转DataFrame
如果方案1仍有问题,可以先使用标准库json读取数据,再转换为DataFrame:
import pandas as pd import json # 用open指定编码读取文件,再通过json.load解析 with open('/content/drive/MyDrive/content_colab_access/quotes_test.json', 'r', encoding='utf-8') as f: raw_data = json.load(f) data = pd.DataFrame(raw_data) print(data.shape) data.head()
错误原因
原代码中pd.read_json接收codecs.open返回的文件对象时,内部解码逻辑与codecs的处理存在冲突,导致无法正确识别孟加拉语字符及JSON数组结构。直接传递文件路径并指定编码,或通过json模块先解析数据,均可规避该解码问题。
内容的提问来源于stack exchange,提问作者mdasiful alam
相关产品推荐
相关产品推荐

