python - 循环以在 JSON 中提取字典中的某些部分
问题描述
我有 1500 个 JSON 格式的元素,但我需要在 python 中放入字典。每个元素都与一个 ID 相关联(它也在字典中并且是一个多边形表示)。
元素具有相同的结构:
OrderedDict([('d5b6d112-903b-4648-833e-d7c3fdac490b',
{'title': 'S2A_MSIL1C_20200410T105031_N0209_R051_T31TCF_20200410T112156',
'link': "https://scihub.copernicus.eu/dhus/odata/v1/Products('d5b6d112-903b-4648-833e-d7c3fdac490b')/$value",
'link_alternative': "https://scihub.copernicus.eu/dhus/odata/v1/Products('d5b6d112-903b-4648-833e-d7c3fdac490b')/",
'link_icon': "https://scihub.copernicus.eu/dhus/odata/v1/Products('d5b6d112-903b-4648-833e-d7c3fdac490b')/Products('Quicklook')/$value",
'summary': 'Date: 2020-04-10T10:50:31.024Z, Instrument: MSI, Mode: , Satellite: Sentinel-2, Size: 708.56 MB',
'datatakesensingstart': datetime.datetime(2020, 4, 10, 10, 50, 31, 24000),
'beginposition': datetime.datetime(2020, 4, 10, 10, 50, 31, 24000),
'endposition': datetime.datetime(2020, 4, 10, 10, 50, 31, 24000),
'ingestiondate': datetime.datetime(2020, 4, 10, 15, 23, 51, 463000),
'orbitnumber': 25073,
'relativeorbitnumber': 51,
'cloudcoverpercentage': 25.1653,
'sensoroperationalmode': 'INS-NOBS',
'gmlfootprint': '<gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326" xmlns:gml="http://www.opengis.net/gml">\n <gml:outerBoundaryIs>\n <gml:LinearRing>\n <gml:coordinates>41.12630256662179,1.925343307665624 41.0388866778506,1.893218517758493 40.89259720303277,1.839655652731482 40.74637877387899,1.786307008717412 40.60020137146172,1.733323787214736 40.554608185948275,1.716936587906194 40.538607851727775,0.638419022640916 41.52685230149302,0.6028173807795 41.546758769895376,1.918508192616414 41.12630256662179,1.925343307665624</gml:coordinates>\n </gml:LinearRing>\n </gml:outerBoundaryIs>\n</gml:Polygon>',
'footprint': 'MULTIPOLYGON (((0.638419022640916 40.538607851727775, 1.716936587906194 40.554608185948275, 1.733323787214736 40.60020137146172, 1.786307008717412 40.74637877387899, 1.839655652731482 40.89259720303277, 1.893218517758493 41.0388866778506, 1.925343307665624 41.12630256662179, 1.918508192616414 41.546758769895376, 0.6028173807795 41.52685230149302, 0.638419022640916 40.538607851727775)))',
我需要提取:标题、足迹和 datatakesensingstart。我希望将所有提取的元素存储在一个列表中。
太感谢了!!
解决方案
给定OrderedDict
遵循您提到的结构的对象列表,您可以使用列表推导创建一个精简字典列表,其中仅包含您感兴趣的键。
trimmed_data = [
{
'Title': element[1]['Title'],
'footprint': element[1]['footprint'],
'datatakesensingstart': element[1]['datatakesensingstart'],
}
for element in data
]
推荐阅读
- yaml - 别名覆盖标记为映射条目的错误缩进
- angular - 带有 Jest 的 Angular:因无法使用不同的导入找到提供者而失败的测试
- swift - 快速,通过按下按钮从 let 随机单词
- sh - 无法构建自定义 Slack 通知
- postgresql - 如何将 pg_monitor 角色添加到 heroku 上的 postgresql 用户
- swiftui - SwiftUI:@Environment 未在视图层次结构中接收提供的值
- javascript - 如何正确将此 C 代码编译为 WebAssembly?
- word-addins - Word加载项中如何获取段落的页码
- node.js - 为什么这个 ts 函数中参数的语法不正确?
- reactjs - 使用具有多个布尔字段的 Object 反应 useState