【发布时间】:2016-12-26 16:28:03
【问题描述】:
我已经用 scrapy 抓取了一个网站并将数据存储在一个 json 文件中。
json文件链接:https://drive.google.com/file/d/0B6JCr_BzSFMHLURsTGdORmlPX0E/view?usp=sharing
但是 json 不是标准的 json 并且会报错:
>>> import json
>>> with open("/root/code/itjuzi/itjuzi/investorinfo.json") as file:
... data = json.load(file)
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/root/anaconda2/lib/python2.7/json/__init__.py", line 291, in load
**kw)
File "/root/anaconda2/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/root/anaconda2/lib/python2.7/json/decoder.py", line 367, in decode
raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 3 column 2 - line 3697 column 2 (char 45 - 3661517)
然后我尝试了这个:
with open('/root/code/itjuzi/itjuzi/investorinfo.json','rb') as f:
data = f.readlines()
data = map(lambda x: x.decode('unicode_escape'), data)
>>> df = pd.DataFrame(data)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'pd' is not defined
>>> import pandas as pd
>>> df = pd.DataFrame(data)
>>> print pd
<module 'pandas' from '/root/anaconda2/lib/python2.7/site-packages/pandas/__init__.pyc'>
>>> print df
[3697 rows x 1 columns]
为什么只返回 1 列?
如何标准化json文件并用pandas正确读取?
【问题讨论】:
-
使用我从获取 json 中添加的最后一个代码来提取值,如果有效则接受
-
@SerialDev 我不知道为什么,但同样的错误......太伤心了。我可以用“with open('/root/code/itjuzi/itjuzi/investorinfo.json','rb') as f: data = f.readlines() data = map(lambda x: x.decode ('unicode_escape'), data)" 但只有一列
标签: python json list pandas scrapy