Python嵌套字典列表解析为CSV并新增原键作为关联列的问题
解决方案
你可以直接在扁平化每条记录时,将地点标识作为新字段插入到记录中,修改后的代码如下:
import pandas as pd from flatten_json import flatten processed_data = [] # 遍历所有地点和对应时序记录 for location_id, records in readings.items(): for record in records: # 扁平化嵌套结构 flattened = flatten(record) # 新增地点标识列 flattened["location_identifier"] = location_id processed_data.append(flattened) # 生成DataFrame并导出 df = pd.DataFrame(processed_data) df.to_csv(r"C:\test.csv", index=False)
如果你不想修改原有推导式的写法,也可以通过拆分索引的方式实现:
data = {(k, i): flatten(item) for k, v in readings.items() for i, item in enumerate(v)} df = pd.DataFrame.from_dict(data, orient='index') # 拆分多级索引为列,第一级即为地点标识 df = df.reset_index(names=['location_identifier', 'record_inner_index']) # 可选:删除不需要的同地点内记录序号列 df = df.drop(columns=['record_inner_index']) df.to_csv(r"C:\test.csv", index=False)
注:如果原有扁平化后的字段中存在和
location_identifier重名的字段,修改该字段名避免覆盖即可。
内容的提问来源于stack exchange,提问作者Mr. Geologist
相关产品推荐
相关产品推荐

