Python结合了JSON数据变量



我研究这个问题已经有一段时间了,还没有找到一个有效的解决方案,所以我希望这里有人能告诉我我缺少了什么。我正在从单独的API调用创建JSON结构化变量,并希望组合结果。这是我的:

my_list1 = jmespath.search("output[*]{'name1': value1[*].name, 'name2': value2[*].name, 'name3': value3[*].name}[]", response1)
my_list2 = jmespath.search("output[*]{'name4': value4[*].name, 'name5': value5[*].name, 'name6': value5[*].name}[]", response2)

这些变量的输出看起来像:

my_list1:
{
"name1": [
"somevalue1",
"somevalue2",
"somevalue3"
],
"name2": [
"somevalue4"
],
"name3": [
"somevalue5"
]
}
my_list2:
{
"name4": [
"othervalue1",
"othervalue2",
"othervalue3"
],
"name5": [
"othervalue4"
],
"name6": [
"othervalue5"
]
}

我试图将这两者结合成一个声明,但我似乎能得到的最接近的是以下内容:

my_list1.extend(my_list2)

这导致:

{
"name1": [
"somevalue1",
"somevalue2",
"somevalue3"
],
"name2": [
"somevalue4"
],
"name3": [
"somevalue5"
]
},
{
"name4": [
"othervalue1",
"othervalue2",
"othervalue3"
],
"name5": [
"othervalue4"
],
"name6": [
"othervalue5"
]
}

我需要的是:

{
"name1": [
"somevalue1",
"somevalue2",
"somevalue3"
],
"name2": [
"somevalue4"
],
"name3": [
"somevalue5"
],
"name4": [
"othervalue1",
"othervalue2",
"othervalue3"
],
"name5": [
"othervalue4"
],
"name6": [
"othervalue5"
]
}

我也尝试过"append"one_answers"insert",但没有成功。我想我错过了一些简单的东西。请帮忙!

您缺少的是两个列表各包含一个字典。你想要更新的是这个字典,而不是包含它的列表

my_dict1 = my_list1[0]
my_dict2 = my_list2[0]
my_dict1.update(my_dict2)

它给出:

mydict1 = {'name1': ['somevalue1', 'somevalue2', 'somevalue3'],
'name2': ['somevalue4'],
'name3': ['somevalue5'],
'name4': ['othervalue1', 'othervalue2', 'othervalue3'],
'name5': ['othervalue4'],
'name6': ['othervalue5']}

最新更新