如何使用另一个列表附加列表键值

How to Append a List Key Value using Another List

我一直在努力让它发挥作用。 有两个不同的 JSON 列表包含不同的键。

列表 1

[
    {
        "name":"John",
        "measurement": "5.11"
    },
    {
        "name":"Kate",
        "measurement": "5.6"
    }
]

列表 2

[
    {
        "name":"John",
        "characteristics": {
            "height": [
            "6.0"
            ]
        }
    },
    {
        "name":"Mike",
        "characteristics": {
            "height": [
            "5.10"
            ]
        }
    }
]

代码

for k in list2:
    if v['name'] in [key['name'] for key in list1:
        list1.append(k['measurement'])

我得到的输出是,

[{'name': 'John', 'characteristics': ['height': '6.0', 'age': 30}, '5.11']

预期输出

[{'name': 'John', 'characteristics': ['height': '5.11', 'age': 30}]

循环遍历键,如果 key['name'] 在两个列表中相等, 然后它开始从给定的键中产生特定的值。 唯一的问题是它对我来说不能正常工作。我只想用测量中的高度替换特征中的高度值。

[编辑]: 我对 json 进行了更改。现在应该是正确的。基本上,height 是一个数组。

JSON 您发布的内容无效,所以我稍作修改。以下代码应该有效:

list_1 = [
    {
        "name": "John",
        "measurement": "5.11"
    },
    {
        "name": "Kate",
        "measurement": "5.6"
    }
]

list_2 = [
    {
        "name": "John",
        "characteristics": {
            "height": "6.0",
            "age": 30
        }
    },
    {
        "name": "Mike",
        "characteristics": {
            "height": "5.10",
            "age": 25
        }
    }
]



result = []
for list_1_item in list_1:
    single_obj = {}
    for list_2_item in list_2:
        if list_2_item['name'] == list_1_item['name']:
            single_obj['name'] = list_1_item['name']
            single_obj['characteristics'] = list_2_item['characteristics']
            result.append(single_obj)

print(result)

这给了我们以下结果:

[{'name': 'John', 'characteristics': {'height': '6.0', 'age': 30}}]