我有一个带有两个数组的JSON对象 - 一个keys
数组和一个values
数组,两者长度相同。使用jmespath,我想构建一个新对象,使用keys
数组的值作为键,values
数组的值作为值,如PHP中的array_combine
。
例如,这里是输入:
{
"keys": [
"a",
"b",
"c"
],
"values": [
1,
2,
3
]
}
以下是我期待的输出:
{
"a": 1,
"b": 2,
"c": 3
}
有没有内置功能来实现这个目标?
答案 0 :(得分:2)
不幸的是,看来这还不可能。
Github问题:jmespath.py#152 —(位于Python实现的存储库中)
您将需要zip
和from_items
函数,这些函数针对规范in this github pull request提出了(!)。
答案 1 :(得分:0)
jmespath 是用于解析/查询JSON文件的流行库。 http://jmespath.org/tutorial.html
的更多示例在下面的代码中
zip 结合了两个列表, dict()将元组转换为 字典
import json
import jmespath
js = '''{
"keys": [
"a",
"b",
"c"
],
"values": [
1,
2,
3
]
}'''
print (dict(zip(jp.search('keys',json.loads(js)),jp.search('values',json.loads(js)))))
输出:{u&#39; a&#39;:1,u&#39; c&#39;:3,u&#39; b&#39;:2} < /强>