Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从for循环打印时出现问题_Python_Json_Pandas_For Loop - Fatal编程技术网

Python 从for循环打印时出现问题

Python 从for循环打印时出现问题,python,json,pandas,for-loop,Python,Json,Pandas,For Loop,对python来说还是很新的。。。尝试从API中提取数据,并将列表中每个字符串的输出打印为json。问题是,循环可以很好地运行列表中的每个字符串,但只打印列表中的最后一个字符串(零售) 代码如下: today = (datetime.date.today() + datetime.timedelta(days=1)).isoformat() + "T05:00:00" start = (datetime.date.today() - datetime.timedelta(days=7)).iso

对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')

有人能帮忙吗?

这里的问题是,在每次迭代中,您都会覆盖
筛选的
的值,而不会在数据帧中设置它的值

正如@chepner在评论中提到的,克服这一问题的一种方法是将
过滤的
改为list类型

myList中的列表的
:
过滤=[]
filtered.append(querys.get_)提及(name=list,
开始日期=开始,
endDate=今天,
))

希望这有帮助:)如果您需要任何进一步的澄清或帮助,请随时开始与我聊天

每次通过时,您都会覆盖
过滤的
的值。可以在列表中收集结果,或者在继续下一次迭代之前使用
过滤的
。换句话说,缩进最后两行。很遗憾,当我将代码转移到堆栈时,我必须粘贴它而不缩进。我在代码中缩进了代码,它仍然像@chepner explained一样被覆盖嘿,我真的很感谢你的反馈。当我尝试您的版本时,我遇到了一个断言错误:AssertionError:111列已传递,传递的数据有1429列。。。有什么想法吗?你能告诉我你是如何将列表值传递给你的数据帧的吗?在上面的列表中,你会看到我的列表。它包含了我要通过for循环的所有元素。并在查询中。获取(name=list)。。。name=list是我引用for循环以获取名为myList的列表的每个元素的地方。希望这对数据帧中的列表项是有意义的,最初我是将过滤后的输出传递给pd.dataframe。老实说,我不知道为什么会出现这种错误。不过,一个大胆的解决办法是将列表中的所有元素连接成一个带有分隔符的字符串。然后,当您想要将其转换回列表时,您可以简单地将其拆分。如果我的答案没有帮助,请让我知道,我可以删除它。