【发布时间】:2017-11-15 11:52:28
【问题描述】:
我正在尝试加载一个只有两列的 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
我猜这是由于两个可能的原因:
不同的property_id有不同数量的图片/URLs/JSON 对象
JSON 字符串格式错误/有问题
我无法弄清楚它到底是什么。
这里不能使用read_csv 和参数error_bad_lines=False,因为我不想丢失任何数据。
子问题:即使有上述两种情况,当两列确实都是字符串格式时,为什么 read_csv 会抛出错误?它怎么知道那个字符串里面有什么问题?
【问题讨论】:
-
这是一种可以预处理数据的情况吗?还是类似 Splunk 的工具?如果您首先将所有内容映射到格式良好的 JSON,那么阅读将很容易..
-
很遗憾,没有。
标签: python json python-3.x pandas parsing