python - 从字典中附加行数据似乎“泄漏”
问题描述
我正在使用以下代码使用 python 3.6 遍历大量 JSON 文件(1000+),见下文。这一切看起来都很简单,但我发现有些列在后续行中被保留(因此重复)。我认为使用 .get() 方法可以解决 KeyErrors,但它没有按我预期的那样工作。
def make_place_table(row):
with open('place_table.csv', 'a', newline='') as results:
writer = csv.writer(results)
writer.writerow(row)
row = []
for filename in glob.glob('/rawjson/*.json'):
with open(filename) as filename:
data = json.load(filename)
#
has_error = bool('error' in data.keys())
has_place_results = bool('place_results' in data.keys())
if(has_error):
row=[]
row.append(data['search_metadata']['id'])
row.append(data['error'])
make_error_table(row)
else:
if(has_place_results):
results = {key:value for key,value in data.items() if key in 'place_results' }
place_results.update(results['place_results'])
has_reviews = bool('user_reviews' in place_results.keys())
has_extensions = bool('extensions' in place_results.keys())
row = []
row.append(data['search_metadata']['id'])
row.append(place_results.get('title', 'n/a'))
row.append(place_results['gps_coordinates']['latitude'])
row.append(place_results['gps_coordinates']['longitude'])
row.append(place_results.get('rating', 'n/a'))
row.append(place_results.get('reviews', 'n/a'))
row.append(place_results.get('price', 'n/a'))
row.append(place_results.get('address', 'n/a'))
row.append(place_results.get('phone', 'n/a'))
row.append(place_results['website'])
amenity_type = [name for name in place_results['type']]
row.append(amenity_type)
row.append(place_results["hours"][3])
row.append(place_results["hours"][4])
row.append(place_results["hours"][5])
row.append(place_results["hours"][6])
row.append(place_results["hours"][0])
row.append(place_results["hours"][1])
row.append(place_results["hours"][2])
make_place_table(row)
row=[]
解决方案
推荐阅读
- ios - 选择和取消选择按钮集合
- mysql - 如何从视图中的 *sql.Rows 类型的变量中获取值?
- python - Pandas - 如何使用相邻列的值预测另一列的值
- sql - 按另一列选择表中的最新条目
- android - 制作一个搜索 Google 和 URL 的 webview 搜索栏
- r - 获取 xml 节点集中属性的两个最常见值
- amazon-web-services - 有没有什么优雅的方法可以以最小的延迟跨 aws 区域复制 redis 数据?
- ios - Xamarin.iOS - 发布应用程序 - 无效的 Swift 支持 - 文件......不匹配
- ruby-on-rails - 需要使用 rails 将 post_id 和 user_id 存储在 read_statuses 表中
- xamarin.android - 如何手动添加额外的文本视图而不将其添加到 axml