python - Python - 如何从 json 中检索元素
问题描述
阿罗哈,
我的 python 例程将从站点检索 json,然后检查文件并在给出第一个答案的情况下下载另一个 json,并最终下载一个 zip。第一个 json 文件提供有关 doc 的信息。这是一个例子:
[
{
"id": "d9789918772f935b2d686f523d066a7b",
"originalName": "130010259_AC2_R44_20200101",
"type": "SUP",
"status": "document.deleted",
"legalStatus": "APPROVED",
"name": "130010259_SUP_R44_AC2",
"grid": {
"name": "R44",
"title": "GRAND EST"
},
"bbox": [
3.4212881,
47.6171589,
8.1598899,
50.1338684
],
"documentSource": "UPLOAD",
"uploadDate": "2020-06-25T14:56:27+02:00",
"updateDate": "2021-01-19T14:33:35+01:00",
"fileIdentifier": "SUP-AC2-R44-130010259-20200101",
"legalControlStatus": 101
},
{
"id": "6a9013bdde6acfa632861aeb1a02942b",
"originalName": "130010259_AC2_R44_20210101",
"type": "SUP",
"status": "document.production",
"legalStatus": "APPROVED",
"name": "130010259_SUP_R44_AC2",
"grid": {
"name": "R44",
"title": "GRAND EST"
},
"bbox": [
3.4212881,
47.6171589,
8.1598899,
50.1338684
],
"documentSource": "UPLOAD",
"uploadDate": "2021-01-18T16:37:01+01:00",
"updateDate": "2021-01-19T14:33:29+01:00",
"fileIdentifier": "SUP-AC2-R44-130010259-20210101",
"legalControlStatus": 101
},
{
"id": "efd51feaf35b12248966cb82f603e403",
"originalName": "130010259_PM2_R44_20210101",
"type": "SUP",
"status": "document.production",
"legalStatus": "APPROVED",
"name": "130010259_SUP_R44_PM2",
"grid": {
"name": "R44",
"title": "GRAND EST"
},
"bbox": [
3.6535762,
47.665021,
7.9509455,
49.907347
],
"documentSource": "UPLOAD",
"uploadDate": "2021-01-28T09:52:31+01:00",
"updateDate": "2021-01-28T18:53:34+01:00",
"fileIdentifier": "SUP-PM2-R44-130010259-20210101",
"legalControlStatus": 101
},
{
"id": "2e1b6104fdc09c84077d54fd9e74a7a7",
"originalName": "444619258_I4_R44_20210211",
"type": "SUP",
"status": "document.pre_production",
"legalStatus": "APPROVED",
"name": "444619258_SUP_R44_I4",
"grid": {
"name": "R44",
"title": "GRAND EST"
},
"bbox": [
2.8698336,
47.3373246,
8.0881368,
50.3796449
],
"documentSource": "UPLOAD",
"uploadDate": "2021-04-19T10:20:20+02:00",
"updateDate": "2021-04-19T14:46:21+02:00",
"fileIdentifier": "SUP-I4-R44-444619258-20210211",
"legalControlStatus": 100
}
]
我尝试做的是从此 json 文件中检索“id”。(例如“id”:“2e1b6104fdc09c84077d54fd9e74a7a7”,)
我试过了
import json
from jsonpath_rw import jsonpath, parse
import jsonpath_rw_ext as jp
with open('C:/temp/gpu/SUP/20210419/SUPGE.json') as f:
d = json.load(f)
data = json.dumps(d)
print("oriName: {}".format( jp.match1("$.id[*]",data) ) )
它不起作用事实上,我不确定 jsonpath-rw 是如何工作的。谢天谢地,有这篇博文,但我仍然卡住了。
有人有线索吗 ?
有了这个id,我就可以下载另一个json,在这个json中会有一个archiveUrl来获取zipfile。
提前致谢。
解决方案
import json
file = open('SUPGE.json')
with file as f:
d = json.load(f)
for i in d:
print(i.get('id'))
这只会给你 id。
d9789918772f935b2d686f523d066a7b
6a9013bdde6acfa632861aeb1a02942b
efd51feaf35b12248966cb82f603e403
2e1b6104fdc09c84077d54fd9e74a7a7
推荐阅读
- c++ - 我什么时候可以调用 OSAction::Cancel 处理程序?
- javascript - 使用 TypeScript 的 Blazor WebAssembly 存在运行时错误
- javascript - 检查数组中对象的属性是否包含在另一个对象数组中
- flutter - json数据flutter中搜索栏的实现
- python - 无法加载我刚刚创建的 JSON 文件(json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0))
- geopandas - 在 geopandas 的 LINESTRING Z 中访问 Z 坐标?
- postgresql - 模拟可空列的主键
- jquery - Validate and Post file using Jquery, PHP
- javascript - 将 2 个对象数组组合成 1 个对象数组(重构请求)
- docker - 如何将 Windows 应用程序连接到 Docker 网络?