1

First of all , thanks to read me !

I have an issue regarding my python script , I need to concatenate two dictionnaries payload_1 and payload_2 to payload

payload_1 = {'groupName': 'POOL_UNDERLAY-LAN-AUTOMATION',
 'groupOwner': 'DNAC',
 'type': 'generic',
 'siteId': 'ffd0d540-6fee-41d1-ba42-430001cf042f',
 'ipPools': [{'parentUuid': '0b20b02e-341a-4584-9f79-27ed32682efc',
 'dhcpServerIps': ['1.1.1.1',
 '2.2.2.2'],
 'dnsServerIps': ['8.8.8.8'],
 'ipPoolOwner': 'DNAC',
 'shared': 'true',
 'gateways': ['192.168.0.1'],
 'ipPoolCidr': '192.168.0/24'}]}


payload_2 = {'groupName': 'POOL_AP',
 'groupOwner': 'DNAC',
 'type': 'generic',
 'siteId': 'ffd0d540-6fee-41d1-ba42-430001cf042f',
 'ipPools': [{'parentUuid': '0b20b02e-341a-4584-9f79-27ed32682efc',
 'dhcpServerIps': ['1.1.1.1',
 '2.2.2.2'],
 'dnsServerIps': ['8.8.8.8'],
 'ipPoolOwner': 'DNAC',
 'shared': 'true',
 'gateways': ['192.168.1.1'],
 'ipPoolCidr': '192.168.1/24'}]}

payload_1 and payload_2 >> are dictionnaries , and need to stay like that.

>>> type(payload_1)
<class 'dict'>

>>> type(payload_2)
<class 'dict'>

Try : payload = {**payload_1, **payload_2}

But I have only the last payload_2

>>>print(payload)
{'groupName': 'POOL_AP',
 'groupOwner': 'DNAC',
 'type': 'generic',
 'siteId': 'ffd0d540-6fee-41d1-ba42-430001cf042f',
 'ipPools': [{'parentUuid': '0b20b02e-341a-4584-9f79-27ed32682efc',
 'dhcpServerIps': ['1.1.1.1',
 '2.2.2.2'],
 'dnsServerIps': ['8.8.8.8'],
 'ipPoolOwner': 'DNAC',
 'shared': 'true',
 'gateways': ['192.168.1.1'],
 'ipPoolCidr': '192.168.1/24'}]}

If fact , I'm waiting this result : payload_1,payload2

{'groupName': 'POOL_UNDERLAY-LAN-AUTOMATION',
 'groupOwner': 'DNAC',
 'type': 'generic',
 'siteId': 'ffd0d540-6fee-41d1-ba42-430001cf042f',
 'ipPools': [{'parentUuid': '0b20b02e-341a-4584-9f79-27ed32682efc',
 'dhcpServerIps': ['1.1.1.1',
 '2.2.2.2'],
 'dnsServerIps': ['8.8.8.8'],
 'ipPoolOwner': 'DNAC',
 'shared': 'true',
 'gateways': ['192.168.0.1'],
 'ipPoolCidr': '192.168.0/24'}]}
{'groupName': 'POOL_AP',
 'groupOwner': 'DNAC',
 'type': 'generic',
 'siteId': 'ffd0d540-6fee-41d1-ba42-430001cf042f',
 'ipPools': [{'parentUuid': '0b20b02e-341a-4584-9f79-27ed32682efc',
 'dhcpServerIps': ['1.1.1.1',
 '2.2.2.2'],
 'dnsServerIps': ['8.8.8.8'],
 'ipPoolOwner': 'DNAC',
 'shared': 'true',
 'gateways': ['192.168.1.1'],
 'ipPoolCidr': '192.168.1/24'}]}

How can I do that ?

I try to use command like this :

payload = json.dumps(payload_1) + json.dumps(payload_2)

It's Works but payload is now a string !!

>>> type(payload)
<class 'str'>
>>>

It's not good for me !

Could you help me please ?

Thanks a lot

foxtrom
  • 11
  • 1

1 Answers1

1

Actually the result you want like payload_1,payload2 is not ONE data structure.

Maybe what you need is list, like

>>> payload = [payload_1, payload_2]
>>> type(payload)
<class 'list'>

Or if you really need a dict, you need to know a dict must has both key and value. Like this:

>>> payload = {'payload_1': payload_1, 'payload_2': payload_2}
>>> type(payload)
<class 'dict'>
Woko
  • 1,521
  • 12
  • 16