Python 如何合并两个字典并根据键替换值?

Python 如何合并两个字典并根据键替换值?,python,pandas,list,dictionary,replace,Python,Pandas,List,Dictionary,Replace,dict1是列表中的嵌套字典,dict2是字典。我试图迭代dict1,并根据匹配的键,用dict2中的值替换“names”值 所需的输出将是: dict1 = [{"names": 'john, will', "age": 2, "score": 4.1}{"names": 'tom, sam', "age": 3, "score": 6}] dict2 = {'john': '001','will': '002', 'tom': '003', 'sam': '004} 反复阅读dict1让我

dict1是列表中的嵌套字典,dict2是字典。我试图迭代dict1,并根据匹配的键,用dict2中的值替换“names”值

所需的输出将是:

dict1 = [{"names": 'john, will', "age": 2, "score": 4.1}{"names": 'tom, sam', "age": 3, "score": 6}]
dict2 = {'john': '001','will': '002', 'tom': '003', 'sam': '004}
反复阅读dict1让我感到困惑。此外,“名称”中的字符串/值没有分开。我试图理解字典,但没有成功

dict3 = [{"names": '001, 002', "age": 2, "score": 4.1}{"names": '003, 004', "age": 3, "score": 6}]

我是一个非常初学者-我感谢任何帮助或指导

这里有一种方法。首先确保您的第一本词典是有效的列表:

A=[
{“姓名”:“约翰,威尔”,“年龄”:2,“分数”:4.1},
{“姓名”:“汤姆,山姆”,“年龄”:3,“分数”:6}
]
B={'john':'001','will':'002','tom':'003','sam':'004'}
然后,您可以应用此自定义函数,该函数在第二个字典中循环,并尝试用它的值替换它能找到的每个键:

def replace_name(名称):
对于B.项()中的k,v:
名称=名称。替换(k,v)
返回名称
df['names']。应用(替换名称)

检查名为
dict1
的列表(是的,这是一个名为
dict1
的列表,容易混淆……),并检查每个元素
x
的键和值,如果键等于
名称
,则检查并根据
dict2
替换字符串,只需记住将结果字符串分配回原始的
dict
,因为replace没有执行到位

{k: dict2.get(v, v) for k, v in dict1.items()}

A
不是有效变量。这与
pandas
有什么关系?正在寻找标准python解决方案或pandas解决方案。
dict1
不是有效的文本,例如
x=({“y”:“AAA”}{“y”:“BBB”})
。你想要一个像
x=[{“y”:“AAA”},{“y”:“BBB”}]
这样的命令列表吗?哎呀!更新了它。是的,正在寻找一个dict列表的输出。
for x in dict1:
    for k, v in x.iteritems():
        if k == 'names':
            for kk, vv in dict2.iteritems():
                v = v.replace(kk, vv)
        x[k] = v


print(dict1)
> [{'age': 2, 'score': 4.1, 'names': '001, 002'}, {'age': 3, 'score': 6, 'names': '003, 004'}]