如何更新嵌套字典中的值

时间:2020-04-30 21:05:29

标签: python

我在python中有一个字典D

字典包含多个元素,一个是另一本字典 我想用反引号

更新字典'columns'的'column_name'的值(如果它是非空的)

情况1: 原始字典:

{'table_name': 'table1', 'columns': {'data_type': 'string', 'column_name': 'data'}, {'data_type': 'bigint','column_name': 'foreign'}}

我要更新以下字典:column_name附加反引号

{'table_name': 'table1', 'columns': {'column_name': '`data`'}, {'column_name': '`foreign`'}}

情况2:

Original Dictionary: 
{'table_name': 'table1', 'columns': {'column_name': 'start'}, {'column_name': 'primary'},
 'table_name': 'table2', 'columns': {'column_name': ''user''}, {'column_name': 'order'}
 }

我要更新字典,如下所示:(在column_name后面加上反引号

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

1 个答案:

答案 0 :(得分:0)

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

https://realpython.com/python-dicts/

但是,对于基本问题,您会将辅助词典中的值视为词典的值。

给出以下字典(经编辑为有效字典,由于我认为这是您的意图,因此我将列更改为列表):

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'}}

您将在列字典中解决“ data_type”值:

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