2017-06-13 45 views
0

我试图加载它只有两列的TSV文件: PROPERTY_ID & photo_urls熊猫:错误而在一列使用JSON字符串加载TSV文件

对于每个PROPERTY_IDphoto_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. JSO N字符串格式不正确/错误

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

使用read_csv与参数error_bad_lines=False不是一个选项,因为我不想丢失任何数据。

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

+0

是,这是您可以在其中预处理情况的数据?或者像Splunk一样的工具?如果你把所有东西都映射到格式良好的JSON中,那么阅读起来很容易。 – boethius

+1

不幸的是,没有。 –

回答

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","... 
+0

谢谢。但是这确实解决了该特定线路的问题,但仍然会在其他线路上导致错误。我正在用更大的数据链接来编辑问题。请参阅数据的更新链接。 –