使用 csv 或 json 处理 python twitter api 数据
Posted
技术标签:
【中文标题】使用 csv 或 json 处理 python twitter api 数据【英文标题】:Handling the python twitter api data with either csv or json 【发布时间】:2017-01-23 01:18:59 【问题描述】:我正在流式传输数据,并且正在将数据保存到这样的 json 文件中
with open('filename.json', 'a') as f:
f.write(data)
现在我想读取数据以进行进一步分析。要在另一个程序中简单地使用 json 文件,我能做的最简单的事情是。
import json
with open('D:\Devotion of time\Data\paralympics.json') as f:
data= json.load(f)
or
data= json.loads(f.read())
在这两种情况下,我都会收到以下错误:-
c:\python27\lib\json\__init__.pyc in load(fp, encoding, cls, object_hook,
parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
276 parse_float=parse_float, parse_int=parse_int,
277 parse_constant=parse_constant,
object_pairs_hook=object_pairs_hook,
278 **kw)
279
280
c:\python27\lib\json\__init__.pyc in loads(s, encoding, cls, object_hook,
parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
324 parse_int is None and parse_float is None and
325 parse_constant is None and object_pairs_hook is None and not
kw):
326 return _default_decoder.decode(s)
327 if cls is None:
328 cls = JSONDecoder
c:\python27\lib\json\decoder.pyc in decode(self, s, _w)
367 end = _w(s, end).end()
368 if end != len(s):
369 raise ValueError(errmsg("Extra data", s, end, len(s)))
370 return obj
371
ValueError: Extra data: line 3 column 1 - line 107 column 1 (char 13127 - 394133)
如果我要切换到其他类似的东西
data = []
with open('file') as f:
for line in f:
data.append(json.loads(line))
然后我得到 AttributeError: 'str' object has no attribute 'read' 有时也 ValueError: No JSON object could be decoded
我搜索了解决方案,但没有任何帮助。 我也尝试用 Pandas (pd.read_json()) 阅读它,但同样的问题。
*我想要对数据做的,是变成一个 csv 文件,或者如果它是 json ,所以试着以某种方式轻松使用它。数据看起来像this
那么如何处理呢?我应该更改程序还是其他?或者任何更好的处理推特数据的建议。*
使用 Python27、win10、tweepy。
【问题讨论】:
【参考方案1】:您的文件不包含单个 JSON 对象,而是每行中包含多个 JSON 对象。您可以按如下方式解析每一行:
with open('t.txt', 'r') as f:
res = []
for line in f:
if line.strip() != '': # The sample file also has empty lines
res.append(json.loads(line))
【讨论】:
以上是关于使用 csv 或 json 处理 python twitter api 数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 shell 或批处理命令行将 Python Pretty 表转换为 CSV
Python MySQL CSV 导出到 json 奇怪的编码