我有一个python脚本,它查看json文件并将变量列为CSV。我遇到的问题是纬度和经度被列出两次。因此,当我写行时,它会查看这些变量并创建具有重复值的输出。
<ItemsPresenter/>
有没有办法只列出一次?
答案 0 :(得分:0)
您需要使用return
而不是yield
。收益率为generators。修好后,您还需要更改
list(find_deep_value(data, "latitude"))
到
find_deep_value(data, "latitude")
对于每一行。最后,改变
output.writerow(lat + lon + weather + temp)
到
output.writerow([lat, lon, weather, temp])
发生了什么(您可能希望首先阅读生成器)是当一个键不在顶级词典中时,您开始循环它们,以及何时达到第一个'latitude'
,yield
关键字返回一个生成器对象。您将该生成器包装在list()
中,立即将整个生成器解压缩到一个列表中。因此,如果您有多个带有给定密钥的子字典,那么您最终会查找并查找每一个字典。