python - 将带有嵌套字典的列表转换为字典
问题描述
我有以下格式的数据,我认为这是一个带有嵌套字典的列表:
data = [{'slipstream_internal/slipstream_hq/27/CLG-MAXFLOW': 580.0,
'slipstream_internal/slipstream_hq/29/CLG-MAXFLOW': 1400.0,
'slipstream_internal/slipstream_hq/30/CLG-MAXFLOW': 918.0,
'slipstream_internal/slipstream_hq/6/CLG-MAXFLOW': 760.0,
'slipstream_internal/slipstream_hq/10/CLG-MAXFLOW': 210.0,
'slipstream_internal/slipstream_hq/8/CLG-MAXFLOW': 880.0,
'slipstream_internal/slipstream_hq/9/CLG-MAXFLOW': 1040.0,
'slipstream_internal/slipstream_hq/11/CLG-MAXFLOW': 700.0,
'slipstream_internal/slipstream_hq/13/CLG-MAXFLOW': 1030.0,
'slipstream_internal/slipstream_hq/14/CLG-MAXFLOW': 1030.0,
'slipstream_internal/slipstream_hq/15/CLG-MAXFLOW': 500.0,
'slipstream_internal/slipstream_hq/16/CLG-MAXFLOW': 370.0,
'slipstream_internal/slipstream_hq/19/CLG-MAXFLOW': 970.0,
'slipstream_internal/slipstream_hq/20/CLG-MAXFLOW': 560.0,
'slipstream_internal/slipstream_hq/21/CLG-MAXFLOW': 1410.0,
'slipstream_internal/slipstream_hq/23/CLG-MAXFLOW': 390.0,
'slipstream_internal/slipstream_hq/24/CLG-MAXFLOW': 320.0,
'slipstream_internal/slipstream_hq/25/CLG-MAXFLOW': 1200.0,
'slipstream_internal/slipstream_hq/26/CLG-MAXFLOW': 815.0,
'slipstream_internal/slipstream_hq/31/CLG-MAXFLOW': 1214.0,
'slipstream_internal/slipstream_hq/34/CLG-MAXFLOW': 735.0,
'slipstream_internal/slipstream_hq/36/CLG-MAXFLOW': 3000.0,
'slipstream_internal/slipstream_hq/37/CLG-MAXFLOW': 275.0,
'slipstream_internal/slipstream_hq/38/CLG-MAXFLOW': 1690.0,
'slipstream_internal/slipstream_hq/39/CLG-MAXFLOW': 270.0}
, {}]
最后总是有一个可以删除的空字典。有人可以给我一个关于如何将此数据类型转换为一个字典的提示,使其看起来像下面这样吗?
data = {'slipstream_internal/slipstream_hq/27/CLG-MAXFLOW': 580.0,
'slipstream_internal/slipstream_hq/29/CLG-MAXFLOW': 1400.0,
'slipstream_internal/slipstream_hq/30/CLG-MAXFLOW': 918.0,
'slipstream_internal/slipstream_hq/6/CLG-MAXFLOW': 760.0,
'slipstream_internal/slipstream_hq/10/CLG-MAXFLOW': 210.0,
'slipstream_internal/slipstream_hq/8/CLG-MAXFLOW': 880.0,
'slipstream_internal/slipstream_hq/9/CLG-MAXFLOW': 1040.0,
'slipstream_internal/slipstream_hq/11/CLG-MAXFLOW': 700.0,
'slipstream_internal/slipstream_hq/13/CLG-MAXFLOW': 1030.0,
'slipstream_internal/slipstream_hq/14/CLG-MAXFLOW': 1030.0,
'slipstream_internal/slipstream_hq/15/CLG-MAXFLOW': 500.0,
'slipstream_internal/slipstream_hq/16/CLG-MAXFLOW': 370.0,
'slipstream_internal/slipstream_hq/19/CLG-MAXFLOW': 970.0,
'slipstream_internal/slipstream_hq/20/CLG-MAXFLOW': 560.0,
'slipstream_internal/slipstream_hq/21/CLG-MAXFLOW': 1410.0,
'slipstream_internal/slipstream_hq/23/CLG-MAXFLOW': 390.0,
'slipstream_internal/slipstream_hq/24/CLG-MAXFLOW': 320.0,
'slipstream_internal/slipstream_hq/25/CLG-MAXFLOW': 1200.0,
'slipstream_internal/slipstream_hq/26/CLG-MAXFLOW': 815.0,
'slipstream_internal/slipstream_hq/31/CLG-MAXFLOW': 1214.0,
'slipstream_internal/slipstream_hq/34/CLG-MAXFLOW': 735.0,
'slipstream_internal/slipstream_hq/36/CLG-MAXFLOW': 3000.0,
'slipstream_internal/slipstream_hq/37/CLG-MAXFLOW': 275.0,
'slipstream_internal/slipstream_hq/38/CLG-MAXFLOW': 1690.0,
'slipstream_internal/slipstream_hq/39/CLG-MAXFLOW': 270.0}
我正在尝试遍历键和值,显然这失败了:
for key, value in data.items():
print(key, value)
失败:
AttributeError: 'list' object has no attribute 'items'
解决方案
如果您的数据是一个只有两个元素的列表并且最后一个是空字典,那么简单的解决方案:
my_dict = data[0]
稳健的解决方案:
my_dict = {}
# iterate over your data
for entry in data:
# iterate over keys in the dict
for key in entry:
my_dict[key] = entry[key]
推荐阅读
- python - 将参数注释为 np.ndarray 有什么意义?
- php - Htaccess 从数据库而不是 IP 地址读取白名单 url
- python - IndexError 的 Python 错误:尝试使用 openCV 减去蓝色时数组的索引过多
- xpath - XPath 仅返回值包含文本的元素
- ios - 将 XCFramework 与目标 C 一起使用
- etl - 从自定义处理器获取转换配置:Nifi
- c# - 如何将“元帅”方法从 C# 迁移到 Go
- c - 使 printf() 始终使用包装器打印函数名称
- python - 如何忽略图像区域进行轮廓检测,OpenCV
- python - 它无法识别路线 /greeting