Python 如何更新嵌套字典中的值

Python 如何更新嵌套字典中的值,python,Python,我有一本python词典 字典有多个元素,一个是另一个字典 我想更新'column\u name'的值,如果它对于带有反引号字符的字典'columns'是非空的 案例1: 原始词典: {'table_name': 'table1', 'columns': {'data_type': 'string', 'column_name': 'data'}, {'data_type': 'bigint','column_name': 'foreign'}} 我想更新字典如下:与列_名称附加反引号 {'t

我有一本python词典

字典有多个元素,一个是另一个字典 我想更新'column\u name'的值,如果它对于带有反引号字符的字典'columns'是非空的

案例1: 原始词典:

{'table_name': 'table1', 'columns': {'data_type': 'string', 'column_name': 'data'}, {'data_type': 'bigint','column_name': 'foreign'}}
我想更新字典如下:与列_名称附加反引号

{'table_name': 'table1', 'columns': {'column_name': '`data`'}, {'column_name': '`foreign`'}}
{'table_name': 'table1', 'columns': {'column_name': '`start`'}, {'column_name': '`primary`'},
 {'table_name': 'table2', 'columns': {'column_name': '`'`user`'`'}, {'column_name': '`order`'}
案例2:

Original Dictionary: 
{'table_name': 'table1', 'columns': {'column_name': 'start'}, {'column_name': 'primary'},
 'table_name': 'table2', 'columns': {'column_name': ''user''}, {'column_name': 'order'}
 }
我想更新字典如下:与列_名称附加反引号

{'table_name': 'table1', 'columns': {'column_name': '`data`'}, {'column_name': '`foreign`'}}
{'table_name': 'table1', 'columns': {'column_name': '`start`'}, {'column_name': '`primary`'},
 {'table_name': 'table2', 'columns': {'column_name': '`'`user`'`'}, {'column_name': '`order`'}

您的字典结构存在一些更深层次的缺陷,例如包含的值没有键,我建议您阅读一本关于字典结构和参考的好教程:

不过,对于基本问题,您可以将次要词典中的值视为词典的值

鉴于以下词典已编辑为有效词典,我将列更改为列表,因为我认为这是您的意图:

dictionary = {'table_name': 'table1', 'columns': [{'data_type': 'string', 'column_name': 'data'}, {'data_type': 'bigint','column_name': 'foreign'}]}
您可以在列列表的第一列中处理“data_type”值,如下所示:

dictionary['columns'][0]['data_type'] = value
但是,在本例中,只有一个严格嵌套的字典只有一列,因此它不需要嵌套在列表中:

dictionary = {'table_name': 'table1', 'columns':{'data_type': 'string', 'column_name': 'data'}}
您可以在columns字典中处理“data_type”值:

dictionary['columns']['data_type'] = value

你可能需要阅读。你的字典有语法错误,谢谢大家,下面的代码有效。我根据Davids的建议使用for循环来处理这个问题,我继续写了它的case2 for rangelenlistofdict中的count:for listofdict[count]:如果isinstancelistofdict[count][x],list:for I in rangelenlistofdict[count][x]:listofdict[count columns][I]['column\U name']='updated value'案例1:dict中x的单个字典:如果是instancedict[x],列表:ranglendict[x]中的i:dict['columns'][i]['column\u name']='updated value'