首页 > 解决方案 > 从 for 循环打印时出现问题

问题描述

对 python 来说还是很新的...尝试从 API 中提取数据并将列表中每个字符串的输出打印到 json。问题是,循环运行我列表中的每个字符串都很好,但只打印列表中的最后一个字符串(零售)。

这是代码:

today = (datetime.date.today() + datetime.timedelta(days=1)).isoformat() + "T05:00:00"
start = (datetime.date.today() - datetime.timedelta(days=7)).isoformat() + "T05:00:00"
myList = ['Financials', 'Industry', 'Health Wellbeing', 'Manufacturing', 'Retail']


for list in myList:
    filtered = queries.get_mentions(name = list,
                                startDate = start,
                                endDate = today,
                                )
df = pd.DataFrame(filtered, columns=['account', 'addedtime',    'author',   'id',   'impact',   'snippet'])
Export_tojson = df.to_json(orient='records')

任何人都可以帮忙吗?

标签: pythonjsonpandasfor-loop

解决方案


这里的问题是,您在每次迭代时都覆盖了 的值,filtered而没有在数据框中设置它的值。

正如@chepner 在评论中提到的那样,克服这个问题的一种方法是改为filteredlist 类型

for list in myList:
    filtered = []

    filtered.append(queries.get_mentions(name = list,
                                startDate = start,
                                endDate = today,
                                ))

希望这会有所帮助:) 如果您需要任何进一步的说明或帮助,请随时与我聊天!


推荐阅读