使用 pandas read_json 导入文件时遇到问题
Posted
技术标签:
【中文标题】使用 pandas read_json 导入文件时遇到问题【英文标题】:Trouble with importing a file with pandas read_json 【发布时间】:2019-05-06 12:42:33 【问题描述】:我是 Python 新手(我使用的是 python 3),我正在尝试在 Jupyter 笔记本中导入 JSON 文件。但是,它给出了以下错误:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 4276350: character maps to <undefined>
下面是代码:
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib as plt
import json
%matplotlib inline
with open('C:\\Users/Desktop/Machine Learning/yelp_academic_dataset_business.json') as datafile:
data = pd.read_json(datafile,orient='columns',encoding='utf-8')
dataframe = pd.DataFrame(data)
我将不胜感激。
【问题讨论】:
你能至少展示一下 JSON 文件的样子吗?这样我们都可以看到问题出在哪里。 嗨 mmontoya,我从那里获得数据集的链接。 kaggle.com/yelp-dataset/yelp-dataset数据集:yelp_academic_dataset_business.json 【参考方案1】:假设 this 是您要导入的文件,它实际上是许多 JSON 对象,每行一个。您需要通过指定lines=True
逐行导入:
data = pd.read_json(datafile, lines=True, orient='columns', encoding='utf-8')
另外,传递文件路径作为第一个参数,而不是文件内容。您可以摆脱打开文件的代码。此外,pd.read_json
正在返回一个 DataFrame,不需要你程序的最后一行:
>>> data = pd.read_json('yelp_academic_dataset_business.json', lines=True, orient='columns', encoding='utf-8')
>>> data
attributes business_id categories city ... review_count stars state type
0 'Take-out': False, 'Wi-Fi': 'free', 'Good For... O_X3PGhk3Y5JWVi866qlJg [Active Life, Arts & Entertainment, Stadiums &... Phoenix ... 29 4.0 AZ business
1 'Parking': 'garage': False, 'street': False,... QbrM7wqtmoNncqjc6GtFaQ [Tires, Automotive, Fashion, Shopping, Departm... Glendale ... 3 3.5 AZ business
【讨论】:
感谢您的回复,是的,这就是我要导入的文件。但是,它仍然给出相同的错误:( @Lonewolf 将文件路径作为第一个参数传递给read_json
,而不是文件内容。
以 open('C:\\Users/Desktop/Machine Learning/yelp_academic_dataset_business.json') 作为数据文件:data = pd.read_json('yelp_academic_dataset_business.json',lines=True, orient=' columns', encoding='utf-8') 这是我的代码,但它不起作用。我得到的错误是“ValueError: Expected object or value”
如果与程序不在同一目录下,则需要指定整个路径。pd.read_json('C:/Users/Desktop/Machine Learning/yelp_academic_dataset_business.json', lines=True, orient='columns', encoding='utf-8')
,请确保您确认是文件的正确路径。以上是关于使用 pandas read_json 导入文件时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
在 Pandas UnicodeDecodeError 中无法使用 pandas.read_json() 解码 JSON 文件中的 Unicode Ascii
使用 pandas.read_json 时出现 ValueError
如何使用 pandas read_json 读取 ADSB json 数据? [复制]
Pandas read_json() 使用简单的 JSON 字符串失败
如何在 ```pandas.read_json(...)` 期间修复 ```ValueError: Trailing data```?