Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 如何在嵌套字典列表中的特定键值之后插入键值?_Python_Python 3.x - Fatal编程技术网

Python 如何在嵌套字典列表中的特定键值之后插入键值?

Python 如何在嵌套字典列表中的特定键值之后插入键值?,python,python-3.x,Python,Python 3.x,我正在尝试在每个“名称”词典下的“操作”列表中插入/附加额外的“订阅”和“延迟”词典。 我在引用/识别正确的列表“名称”以附加“订阅”和“延迟”时遇到问题。订阅和延迟数据来自不同的excel工作表,唯一的链接数据是“名称”。 当前正在使用pandas导入excel数据 mydict = {'sequence': [{'name': 'Start 1', 'action': [{'subscribe': {'user': ['user 1', 'user 3'], 'delay': 120}},

我正在尝试在每个“名称”词典下的“操作”列表中插入/附加额外的“订阅”和“延迟”词典。 我在引用/识别正确的列表“名称”以附加“订阅”和“延迟”时遇到问题。订阅和延迟数据来自不同的excel工作表,唯一的链接数据是“名称”。 当前正在使用pandas导入excel数据

mydict = {'sequence': [{'name': 'Start 1', 'action': [{'subscribe': {'user': ['user 1', 'user 3'], 'delay': 120}}, {'subscribe': {'user': ['user 2', 'user5'], 'delay': 20}}]}, {'name': 'Start 5', 'action': [{'subscribe': {'user': ['user 6', 'user 7'], 'delay': 100}}, {'subscribe': {'user': ['user 2', 'user5'], 'delay': 80}}]}]}
最终词典

newdata =  {'subscribe': {'user': ['user X', 'user Y'], 'delay': Z}}

newdata2 =  {'subscribe': {'user': ['user A', 'user B'], 'delay': C}}

我想做的是可能的吗?

给定原始数据:

mydict = {'sequence': [{'name': 'Start 1', 'action': [{'subscribe': {'user': ['user 1', 'user 3'], 'delay': 120}}, {'subscribe': {'user': ['user 2', 'user5'], 'delay': 20}}, {'subscribe': {'user': ['user X', 'user Y'], 'delay': Z}}]}, {'name': 'Start 5', 'action': [{'subscribe': {'user': ['user 6', 'user 7'], 'delay': 100}}, {'subscribe': {'user': ['user 2', 'user5'], 'delay': 80}}, {'subscribe': {'user': ['user A', 'user B'], 'delay': C}}]}]}
使用mydict['sequence'][0],您可以获得:

mydict = {'sequence': 
[ {'name': 'Start 1',
   'action': [{'subscribe': {'user': ['user 1', 'user 3'], 'delay': 120}},
    {'subscribe': {'user': ['user 2', 'user5'], 'delay': 20}}}]},
  {'name': 'Start 5',
   'action': [{'subscribe': {'user': ['user 6', 'user 7'], 'delay': 100}},
    {'subscribe': {'user': ['user 2', 'user5'], 'delay': 80}}}]}
]}
如果您想将
newdata
添加到
mydict['sequence'][0]
中的操作中,您可以这样做

{'name': 'Start 1',
 'action': [{'subscribe': {'user': ['user 1', 'user 3'], 'delay': 120}},
  {'subscribe': {'user': ['user 2', 'user5'], 'delay': 20}}]}
类似地,如果要将
newdata2添加到
mydict['sequence'][1]`中的操作,可以执行以下操作:

mydict['sequence'][0]['action'].append(newdata)
TL;博士 [out]:

mydict = {'sequence': [{'name': 'Start 1',
   'action': [{'subscribe': {'user': ['user 1', 'user 3'], 'delay': 120}},
    {'subscribe': {'user': ['user 2', 'user5'], 'delay': 20}}]},
  {'name': 'Start 5',
   'action': [{'subscribe': {'user': ['user 6', 'user 7'], 'delay': 100}},
    {'subscribe': {'user': ['user 2', 'user5'], 'delay': 80}}]}]}


Z = 9999
C = 8888
newdata =  {'subscribe': {'user': ['user X', 'user Y'], 'delay': Z}}
newdata2 =  {'subscribe': {'user': ['user A', 'user B'], 'delay': C}}

mydict['sequence'][0]['action'].append(newdata)
mydict['sequence'][1]['action'].append(newdata2)

欢迎来到stackoverflow,请看一下。通常,最好在你的问题上加上你已经尝试过的东西,这样其他回答者会更愿意回答。希望答案有帮助,快乐编码!感谢您的回复,我正在尝试这样做,但是使用k:v搜索来识别索引。然后,您需要更具体一点,并解释如何“识别索引”,以及
a
B
X
Y
。k:v搜索基于{'name':'value'}键/值,一旦正确识别正确的字典,然后将新数据添加到该“操作”。A、B、C、X、Y、Z是值变量。
mydict = {'sequence': [{'name': 'Start 1',
   'action': [{'subscribe': {'user': ['user 1', 'user 3'], 'delay': 120}},
    {'subscribe': {'user': ['user 2', 'user5'], 'delay': 20}}]},
  {'name': 'Start 5',
   'action': [{'subscribe': {'user': ['user 6', 'user 7'], 'delay': 100}},
    {'subscribe': {'user': ['user 2', 'user5'], 'delay': 80}}]}]}


Z = 9999
C = 8888
newdata =  {'subscribe': {'user': ['user X', 'user Y'], 'delay': Z}}
newdata2 =  {'subscribe': {'user': ['user A', 'user B'], 'delay': C}}

mydict['sequence'][0]['action'].append(newdata)
mydict['sequence'][1]['action'].append(newdata2)
[{'name': 'Start 1',
  'action': [{'subscribe': {'user': ['user 1', 'user 3'], 'delay': 120}},
   {'subscribe': {'user': ['user 2', 'user5'], 'delay': 20}},
   {'subscribe': {'user': ['user X', 'user Y'], 'delay': 9999}}]},
 {'name': 'Start 5',
  'action': [{'subscribe': {'user': ['user 6', 'user 7'], 'delay': 100}},
   {'subscribe': {'user': ['user 2', 'user5'], 'delay': 80}},
   {'subscribe': {'user': ['user A', 'user B'], 'delay': 8888}}]}]