Pandas:在其中一列中加载带有JSON字符串的TSV文件时出错

时间:2017-06-13 15:37:56

标签: python json python-3.x pandas parsing

我正在尝试加载只有两列的tsv文件: property_id & photo_urls

对于每个 property_id photo_urls 列包含一个字符串表示形式 json数组,其中每个json对象代表一个图像(一个URL)。

Here(pastbin链接)是我尝试使用Pandas加载的tsv文件的一小部分示例。

photos_df = pandas.read_csv('test.tsv')

这会引发错误:

ParserError: Error tokenizing data. C error: Expected 49 fields in line 4, saw 84

我猜这是由于两个可能的原因:

  1. 不同的 property_id 具有不同数量的图像/网址/ JSON对象

  2. JSON字符串格式错误/错误

  3. 我无法弄清楚到底是什么。

    使用带有参数read_csv的{​​{1}}不是一个选项,因为我不想丢失任何数据。

    子问题:即使有上述两种情况,当两列确实都是字符串格式时,为什么read_csv会抛出错误?它是如何知道该字符串中的错误的?

1 个答案:

答案 0 :(得分:0)

 import pandas as pd
 pd.read_csv('pLurm1w1.txt',delim_whitespace=True)

返回

    property_id                               photo_urls
0   ff808081469fd6e20146a5af948000ea    [{title":"Balcony","name":"IMG_20131006_120837...
1   ff8080814702d3d10147068359d200cd    NaN
2   ff808081470c645401470fb03f5800a6    [{title":"Bedroom","name":"ff808081470c6454014...
3   ff808081470c6454014715eaa5960281    [{title":"Bedroom","name":"Screenshot_7.jpg","...