如何在Python中修复:值错误尾随数据

555 阅读2分钟

在使用Python时,你可能遇到的一个错误是:

ValueError: Trailing data

这个错误通常发生在你试图将一个JSON文件导入到pandas DataFrame中,然而数据是以行来写的,并以'/n'这样的尾行来分隔。

解决这个错误的最简单的方法是在导入数据的时候简单地指定lines=True

df = pd.read_json('my_data.json', lines=True)

下面的例子显示了如何在实践中解决这个错误。

如何重现该错误

假设我们有以下的JSON文件。

现在假设我们试图将这个JSON文件导入一个pandas DataFrame中。

#attempt to import JSON file into pandas DataFrame
df = pd.read_json('Documents/DataFiles/my_data.json')

ValueError: Trailing data

我们会收到一个错误,因为我们的JSON文件中的 "Review "项包含了表示结束线的n。

如何修复该错误

解决这个错误的最简单的方法是在导入数据的时候简单地指定lines=True

#import JSON file into pandas DataFrame
df = pd.read_json('Documents/DataFiles/my_data.json', lines=True)

#view DataFrame
df

	ID	Rating	Review
0	A	8	Great movie.\nI would recommend it.
1	B	5	Mediocre movie.\nWould not recommend it.
2	C	3	Bad movie.\nI would not recommend.
3	D	7	Decent movie.\nI might recommend it.

注意,我们能够成功地将JSON文件导入到pandas DataFrame中,没有任何错误。

如果我们想从 "回顾 "列中删除 \n 的尾线,我们可以使用以下语法:

#replace \n with empty space in 'Review' column
df['Review'] = df['Review'].str.replace('\n', ' ')

#view updated DataFrame
df

	ID	Rating	Review
0	A	8	Great movie. I would recommend it.
1	B	5	Mediocre movie. Would not recommend it.
2	C	3	Bad movie. I would not recommend.
3	D	7	Decent movie. I might recommend it.

现在,"Review "列中的 \n 值已被删除。

其他资源

下面的教程解释了如何在pandas中执行其他常见的操作:

如何将Pandas DataFrame转换成JSON文件
如何将JSON文件转换成Pandas DataFrame