jmespath 从不是 json 的列表中提取一个键
jmespath extract a key from a list which is not json
我正在尝试从列表中提取一段文本。
列表是这样的
[{'texts': [{'language': {'isoCode': 'it', 'name': 'Italian'},
'text': 'CATETERI VENOSI CENTRALI CON ACCESSO PERIFERICO MULTILUME',
'allLanguagesApplicable': None},
{'language': {'isoCode': 'fr', 'name': 'French'},
'text': 'CATHÉTERS VEINEUX CENTRAUX MULTILUMIÈRES PAR ABORD PÉRIPHÉRIQUE',
'allLanguagesApplicable': None},
{'language': {'isoCode': 'en', 'name': 'English'},
'text': 'CENTRAL I.V. MULTI-LUMEN CATHETERS, PERIPHERAL ACCESS',
'allLanguagesApplicable': None}]}]
我需要提取 language.isoCode
为 en
的文本。
但是 JMESPath 查询出于某种原因暗示我。
我希望输出为
CENTRAL I.V. MULTI-LUMEN CATHETERS, PERIPHERAL ACCESS
这是我的尝试
jmespath.search("[*].texts[?language.isoCode == 'en'].text[]", temp_json)
['CENTRAL I.V. MULTI-LUMEN CATHETERS, PERIPHERAL ACCESS']
但是,我只想要文本而不是数组。
您需要停止 [?language.isoCode == 'en']
创建的过滤器投影以获取该数组的第一个元素。
这在教程的 pipe expressions 章节中有详细说明。
所以,你的查询结果是
[*].texts[?language.isoCode == 'en'].text[] | [0]
这给出了预期:
"CENTRAL I.V. MULTI-LUMEN CATHETERS, PERIPHERAL ACCESS"
我正在尝试从列表中提取一段文本。
列表是这样的
[{'texts': [{'language': {'isoCode': 'it', 'name': 'Italian'},
'text': 'CATETERI VENOSI CENTRALI CON ACCESSO PERIFERICO MULTILUME',
'allLanguagesApplicable': None},
{'language': {'isoCode': 'fr', 'name': 'French'},
'text': 'CATHÉTERS VEINEUX CENTRAUX MULTILUMIÈRES PAR ABORD PÉRIPHÉRIQUE',
'allLanguagesApplicable': None},
{'language': {'isoCode': 'en', 'name': 'English'},
'text': 'CENTRAL I.V. MULTI-LUMEN CATHETERS, PERIPHERAL ACCESS',
'allLanguagesApplicable': None}]}]
我需要提取 language.isoCode
为 en
的文本。
但是 JMESPath 查询出于某种原因暗示我。
我希望输出为
CENTRAL I.V. MULTI-LUMEN CATHETERS, PERIPHERAL ACCESS
这是我的尝试
jmespath.search("[*].texts[?language.isoCode == 'en'].text[]", temp_json)
['CENTRAL I.V. MULTI-LUMEN CATHETERS, PERIPHERAL ACCESS']
但是,我只想要文本而不是数组。
您需要停止 [?language.isoCode == 'en']
创建的过滤器投影以获取该数组的第一个元素。
这在教程的 pipe expressions 章节中有详细说明。
所以,你的查询结果是
[*].texts[?language.isoCode == 'en'].text[] | [0]
这给出了预期:
"CENTRAL I.V. MULTI-LUMEN CATHETERS, PERIPHERAL ACCESS"