Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x python-if-else-列表理解-在if中赋值_Python 3.x_Data Structures - Fatal编程技术网

Python 3.x python-if-else-列表理解-在if中赋值

Python 3.x python-if-else-列表理解-在if中赋值,python-3.x,data-structures,Python 3.x,Data Structures,我需要使用python列表理解从一个字典向另一个字典赋值; csv_a和csv_b是两本字典。我尝试执行以下操作 [[csv_a[i][j] = csv_b[j] if j in csv_b.keys() else ' '] for i in csv_a.keys()] 我得到了表示“=”的语法错误 请帮忙 样本数据: csv_a = {'logging': {'host': 'logging.com', 'port': '443', 'basepath': '/api', 'protocol

我需要使用python列表理解从一个字典向另一个字典赋值; csv_a和csv_b是两本字典。我尝试执行以下操作

[[csv_a[i][j] = csv_b[j] if j in csv_b.keys() else ' '] for i in csv_a.keys()]
我得到了表示“=”的语法错误

请帮忙

样本数据:

csv_a = {'logging': {'host': 'logging.com', 'port': '443', 'basepath': '/api', 'protocol': 'HTTPS', 'user': 'abc', 'password': '1234', 'secrets': 0}

csv_b = {'secrets' : {'client_id' : 'abc', 'client_secret' : 'efg'}}
预期产出:

{'logging': {'host': 'logging.com', 'port': '443', 'basepath': '/api', 'protocol': 'HTTPS', 'user': 'abc', 'password': '1234', 'secrets': {'client_id' : 'abc', 'client_secret' : 'efg'}}

只需使用
csv_b
dict更新
logging
键的值即可

csv_a = {'logging': {'host': 'logging.com', 'port': '443', 'basepath': '/api', 'protocol': 'HTTPS', 'user': 'abc', 'password': '1234', 'secrets': 0}}
csv_b = {'secrets' : {'client_id' : 'abc', 'client_secret' : 'efg'}}
csv_a["logging"].update(csv_b)
print(csv_a)
{'logging': {'host': 'logging.com', 'port': '443', 'basepath': '/api', 'protocol': 'HTTPS', 'user': 'abc', 'password': '1234', 'secrets': {'client_id': 'abc', 'client_secret': 'efg'}}}
这将使您获得所需的输出

或者,您可以为循环选择

for k in csv_a.keys():
    csv_a[k].update(csv_b)

发布两个词典的示例数据添加了示例数据,谢谢发布预期输出为什么不-
csv\u a[“日志记录”]。更新(csv\u b)
?我将立即尝试并返回。作为一种间歇解决方案,我创建了一个函数,并将两个字典作为参数传递,以将值从一个dict分配给另一个dict。与硬编码csv_a['logging']不同,我希望从csv_a.keys()动态传递该值,因此我使用了列表理解