Jmespath सेटिंग jmespath expr गतिशील रूप से
Sep 07 2020
मैं इस प्रकार jmespath का उपयोग कर रहा हूँ
data = {
"value": [
{
"datasetId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
"id": "5b218778-e7a5-4d73-8187-f10824047715",
"name": "SalesMarketing2",
"webUrl": "https://app.powerbi.com/groups/f089354e-8366-4e18-aea3-4cb4a3a50b48/reports/5b218778-e7a5-4d73-8187-f10824047715",
"embedUrl": "https://app.powerbi.com/reportEmbed?reportId=5b218778-e7a5-4d73-8187-f10824047715&groupId=f089354e-8366-4e18-aea3-4cb4a3a50b48",
},
{
"datasetId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
"id": "5b218778-e7a5-4d73-8187-f10824047715",
"name": "SalesMarketing3",
"webUrl": "https://app.powerbi.com/groups/f089354e-8366-4e18-aea3-4cb4a3a50b48/reports/5b218778-e7a5-4d73-8187-f10824047715",
"embedUrl": "https://app.powerbi.com/reportEmbed?reportId=5b218778-e7a5-4d73-8187-f10824047715&groupId=f089354e-8366-4e18-aea3-4cb4a3a50b48",
},
]
}
और जेम्सैथ एक्सप्रैस को गतिशील रूप से सेट करना:
report= 'SalesMarketing3'
jmespath.search(f"'value[?name == {report}]'", data)
"SalesMarketing3" के अनुरूप शब्दकोष प्राप्त करने के बजाय, मुझे आउटपुट निम्नानुसार मिल रहा है, क्या मुझे कुछ याद आ रहा है?
'मान [? नाम == SalesMarketing3]'
किसी भी सहायताको बहुत सराहा जाएगा।
जवाब
3 β.εηοιτ.βε Sep 07 2020 at 02:59
आपका मुद्दा इस तथ्य से आ रहा है कि आपको स्ट्रिंग या कच्चे स्ट्रिंग शाब्दिक पर खोजना होगा SalesMarketing3।
JMESPath में:
- एक स्ट्रिंग एकल उद्धरण द्वारा सीमांकित है:
'SalesMarketing3' - एक कच्ची स्ट्रिंग शाब्दिक backticks द्वारा सीमांकित है:
`SalesMarketing3`
यह देखते हुए example.py :
import jmespath
data = {
"value": [
{
"datasetId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
"id": "5b218778-e7a5-4d73-8187-f10824047715",
"name": "SalesMarketing2",
"webUrl": "https://app.powerbi.com/groups/f089354e-8366-4e18-aea3-4cb4a3a50b48/reports/5b218778-e7a5-4d73-8187-f10824047715",
"embedUrl": "https://app.powerbi.com/reportEmbed?reportId=5b218778-e7a5-4d73-8187-f10824047715&groupId=f089354e-8366-4e18-aea3-4cb4a3a50b48",
},
{
"datasetId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
"id": "5b218778-e7a5-4d73-8187-f10824047715",
"name": "SalesMarketing3",
"webUrl": "https://app.powerbi.com/groups/f089354e-8366-4e18-aea3-4cb4a3a50b48/reports/5b218778-e7a5-4d73-8187-f10824047715",
"embedUrl": "https://app.powerbi.com/reportEmbed?reportId=5b218778-e7a5-4d73-8187-f10824047715&groupId=f089354e-8366-4e18-aea3-4cb4a3a50b48",
},
]
}
report = 'SalesMarketing3'
print(jmespath.search(f"value[?name == `{report}`]", data))
## Another equivalent is:
# print(jmespath.search(f"value[?name == '{report}']", data))
यह अपेक्षित आउटपुट देता है:
[
{
"datasetId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
"id": "5b218778-e7a5-4d73-8187-f10824047715",
"name": "SalesMarketing3",
"webUrl": "https://app.powerbi.com/groups/f089354e-8366-4e18-aea3-4cb4a3a50b48/reports/5b218778-e7a5-4d73-8187-f10824047715",
"embedUrl": "https://app.powerbi.com/reportEmbed?reportId=5b218778-e7a5-4d73-8187-f10824047715&groupId=f089354e-8366-4e18-aea3-4cb4a3a50b48"
}
]