当值已知时从 json 文件中提取密钥(groovy 或 python)
Pull key from json file when values is known (groovy or python)
如果我只知道值,有没有办法从 JSON 中提取密钥? (在 groovy 或 python 中)
一个例子:
我知道“_number”值,我需要一把钥匙。
比方说,已知 _number 是 2 作为输出,我应该得到 dsf34f43f34f34f
{
"id": "8e37ecadf4908f79d58080e6ddbc",
"project": "some_project",
"branch": "master",
"current_revision": "3rtgfgdfg2fdsf",
"revisions": {
"43g5g534534rf34f43f": {
"_number": 3,
"created": "2019-04-16 09:03:07.459000000",
"uploader": {
"_account_id": 4
},
"description": "Rebase"
},
"dsf34f43f34f34f": {
"_number": 2,
"created": "2019-04-02 10:54:14.682000000",
"uploader": {
"_account_id": 2
},
"description": "Rebase"
}
}
}
Python 3:(假设数据保存在data.json
):
import json
with open('data.json') as f:
json_data = json.load(f)
for rev, revdata in json_data['revisions'].items():
if revdata['_number'] == 2:
print(rev)
打印所有 _number
等于 2 的转速。
使用 dict-comprehension
:
print({k for k,v in d['revisions'].items() if v.get('_number') == 2})
输出:
{'dsf34f43f34f34f'}
与Groovy:
def json = new groovy.json.JsonSlurper().parse("x.json" as File)
println(json.revisions.findResult{ it.value._number==2 ? it.key : null })
// => dsf34f43f34f34f
如果我只知道值,有没有办法从 JSON 中提取密钥? (在 groovy 或 python 中) 一个例子: 我知道“_number”值,我需要一把钥匙。 比方说,已知 _number 是 2 作为输出,我应该得到 dsf34f43f34f34f
{
"id": "8e37ecadf4908f79d58080e6ddbc",
"project": "some_project",
"branch": "master",
"current_revision": "3rtgfgdfg2fdsf",
"revisions": {
"43g5g534534rf34f43f": {
"_number": 3,
"created": "2019-04-16 09:03:07.459000000",
"uploader": {
"_account_id": 4
},
"description": "Rebase"
},
"dsf34f43f34f34f": {
"_number": 2,
"created": "2019-04-02 10:54:14.682000000",
"uploader": {
"_account_id": 2
},
"description": "Rebase"
}
}
}
Python 3:(假设数据保存在data.json
):
import json
with open('data.json') as f:
json_data = json.load(f)
for rev, revdata in json_data['revisions'].items():
if revdata['_number'] == 2:
print(rev)
打印所有 _number
等于 2 的转速。
使用 dict-comprehension
:
print({k for k,v in d['revisions'].items() if v.get('_number') == 2})
输出:
{'dsf34f43f34f34f'}
与Groovy:
def json = new groovy.json.JsonSlurper().parse("x.json" as File)
println(json.revisions.findResult{ it.value._number==2 ? it.key : null })
// => dsf34f43f34f34f