【发布时间】:2016-09-23 05:08:42
【问题描述】:
我正在尝试创建一个列表,其中包含来自 5 个不同来源的所有报纸文章。它们以JSON 格式存储。所有文章都存储在包含报纸和年份的不同文件中(时间垃圾邮件 2005-2015)。问题是其中一份报纸仅适用于 2014-15,因此当我将所有内容循环在一起时,我会出错。这是我的尝试:
import json
import nltk
import re
import pandas
appended_data = []
for i in range(2005,2016):
df0 = pandas.DataFrame([json.loads(l) for l in open('SDM_%d.json' % i)])
df1 = pandas.DataFrame([json.loads(l) for l in open('Scot_%d.json' % i)])
df2 = pandas.DataFrame([json.loads(l) for l in open('APJ_%d.json' % i)])
df3 = pandas.DataFrame([json.loads(l) for l in open('TH500_%d.json' % i)])
df4 = pandas.DataFrame([json.loads(l) for l in open('DRSM_%d.json' % i)])
appended_data.append(df0)
appended_data.append(df1)
appended_data.append(df2)
appended_data.append(df3)
appended_data.append(df4)
appended_data = pandas.concat(appended_data)
doc_set = appended_data.body
我的问题是;这段代码是否符合我的目标? (创建一个列表,其中包含每个报纸的所有文章的body);并且,我如何以跳过 2005-2013 年的第一家报纸 (SDM) 的方式对其进行编程
【问题讨论】:
-
第一个问题没有数据很难回答,但第二个问题可以用os.path.exists测试文件是否存在。
-
请注意,您应该检查读取是否有效,并且其他文件是否存在以防万一。
-
您应该关闭文件以避免一次打开太多文件。即使这样行得通,最好还是从良好的习惯开始,为以后的项目做好准备。
标签: python loops pandas append