【问题标题】:Add key and dictionary as key-value pair into existing dictionary将键和字典作为键值对添加到现有字典中
【发布时间】:2021-03-24 20:42:58
【问题描述】:

我想添加 "5f6c" 作为键,值为 photo_dict = {'caption': 'eb test', 'photo_id':'330da114-e41e-4cee-ba15-f9632'} 使用 python 进入下面。我不知道该怎么做

  {'record': {'status': 'bad', 'form_id': '16bba1', 'project_id': None, 'form_values': {'5121': 
 'yes', '8339': 'ZTVPNG', '6cd3': '234624', '6b5b': '105626', 'e1f6': '[]', '5f6c': [{'id': 
 'f6efe67d7c5', 'created_at': '1614189636', 'updated_at': '1614189636', 'form_values': {'4ba6': 
  'Gaaaaah!'}}}

这样字典就变成了

       {'record': {'status': 'bad', 'form_id': '16bba1', 'project_id': None, 'form_values': {'5121': 
    'yes', '8339': 'ZTVPNG', '6cd3': '234624', '6b5b': '105626', 'e1f6': '[]', '5f6c': [{'id': 
   'f6efe67d7c5', 'created_at': '1614189636', 'updated_at': '1614189636', 'form_values': {'4ba6': 
     'Gaaaaah!', '5f6c': [{'caption': eb test, 'photo_id': '330da114-e41e-4cee-ba15-f9632'}]}}}

【问题讨论】:

  • 这是一个无效的字典。在您的帖子中包含完整的字典。
  • 请让您的问题更清楚。你的字典无效,这里有嵌套的字典,事情真的很混乱和混乱。对于浅字典,我倾向于按顺序做事,但经过几级嵌套后,我会更好地对其进行格式化以提高可读性。要将键值对添加到任何字典,您只需执行 my_dict['Key'] = 'value'

标签: python dictionary key-value


【解决方案1】:

因此,您的初始字典似乎格式不正确,并且与您在问题中所问的内容不完全匹配,我将首先使用正确的格式对其进行更新。

话虽如此,我假设格式会接近这个:

{
    "record":{
        "status":"bad",
        "form_id":"16bba1",
        "project_id":"None",
        "form_values":{
            "5121":"yes",
            "8339":"ZTVPNG",
            "6cd3":"234624",
            "6b5b":"105626",
            "e1f6":"[]",
            "5f6c":[
                {
                    "id":"f6efe67d7c5",
                    "created_at":"1614189636",
                    "updated_at":"1614189636",
                    "form_values":{
                        "4ba6":"Gaaaaah!",
                        "5f6c": {
                                "caption":"eb test",
                                "photo_id":"330da114-e41e-4cee-ba15-f9632"
                        }
                    }
                }
            ]
        }
    }
}

你想用值修改 5f6c

{'caption': 'eb test', 'photo_id':'330da114-e41e-4cee-ba15-f9632'} 

目前还不清楚您实际要修改哪个键,因为键 5f6c 可以在您的字典中的两个不同位置找到,但似乎您要做的只是修改字典。

因此,您需要摆脱的是修改字典并列出您只需要做的事情

myDict[key] = value
myList[indice] = value

您可以在同一行中尽可能多地联系。

如果我们从上面举你的例子,并尝试修改最窄的值,它会给我们

import json
records = json.loads(theString)
records['record']['form_values']['5f6c'][0]['form_values']['5f6c'] = {"caption":"eb test", "photo_id":"330da114-e41e-4cee-ba15-f9632"                    }

【讨论】:

    【解决方案2】:

    在更正您的格式后,我会这样做。

    my_dict = {'record': {'status': 'bad', 
                'form_id': '16bba1', 
                'project_id': None, 
                'form_values': {'5121': 'yes', 
                                '8339': 'ZTVPNG', 
                                '6cd3': '234624', 
                                '6b5b': '105626', 
                                'e1f6': '[]', 
                                '5f6c': [{'id': 'f6efe67d7c5', 
                                          'created_at': '1614189636', 
                                          'updated_at': '1614189636', 
                                          'form_values': {'4ba6': 'Gaaaaah!'}
                                          }
                                ]}
                }
    }
    
    photo_dict = {'caption': 'eb test', 'photo_id':'330da114-e41e-4cee-ba15-f9632'}
    
                                                                                       
    
    my_dict['record']['form_values']['5f6c'][0]['form_values']['5f6c'] = photo_dict
    

    顺便说一下,您可以在 IDE 中获取工具,帮助您进行格式化并为您处理。

    【讨论】:

      猜你喜欢
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 2023-03-31
      • 2013-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多