[英]Emulate Bash jq with Python
我在名為 data.json 的文件中有以下 JSON
{
"tenant_admins": [
{
"is_user": true,
"id": "id-1",
"user_id": "P000216",
"email": "test1@test.com",
"first_name": "Test",
"last_name": "One",
"display_name": "Test One",
"status": "active",
"roles": {
"manage_access": true,
"manage_idp": true
}
},
{
"is_user": false,
"id": "id-2",
"user_id": "P000218",
"email": "test2@test.com",
"first_name": "Test",
"last_name": "Two",
"display_name": "Test Two",
"status": "active",
"roles": {
"manage_access": true,
"manage_idp": true
}
},
{
"is_user": true,
"id": "id-3",
"user_id": "P000230",
"email": "test3@test.com",
"first_name": "Test",
"last_name": "Three",
"display_name": "Test Three",
"status": "active",
"roles": {
"manage_access": true,
"manage_idp": true
}
}
]
}
當我運行這個 bash 命令時:
cat data.json| jq ".tenant_admins[].id"
我得到了我期望的以下響應:
"id-1"
"id-2"
"id-3"
如何在 Python 中進行相同的操作? 到目前為止,我已經能夠使用 json 模塊獲取該信息,但我必須創建一個 for 循環才能這樣做。 是否有任何我可能錯過的內置內容,或者我是否一直在使用 for 循環?
謝謝。
我要感謝@jarmod 和@charles duffy 將我指向 jq python 模塊。 經過一番摸索,我能夠創建以下內容:
import json
import jq
with open('data.json') as f:
data = json.load(f)
ids = jq.compile('.tenant_admins[].id').input(data).all()
# Print the extracted names
print(ids)
這導致:
['id-1', 'id-2', 'id-3']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.