後で投稿を行うために2つの辞書をマージしようとすると問題が発生します。何らかの理由でgetがネストされているように見えますが、どうやってそれをきれいにするのかわかりません。コードを最適化するためのヒントを得るのは素晴らしいことですが、今はちょっと面倒です。ネストされたキーを削除し、値をメインの辞書キーに移動させます
for network in networks:
post_dict = {e1:e2 for e1,e2 in network['extattrs'].iteritems() if e1 not in keys }
pprint (post_dict['Stuff-Name']['value'])
post_dict['name'] = post_dict.pop('Stuff-Name')
post_dict['sid'] = post_dict.pop('Stuff-id')
dict_to_post = merge_two_dicts(post_dict, default_keys)
ネットワーク:
{u'_ref': u'ref number',
u'comment': u'Name of object',
u'extattrs': {u'Network-Type': {u'value': u'Internal'},
u'Stuff-Id': {u'value': 110},
u'Stuff-Name': {u'value': u'Name of object'}},
u'network': u'Subnet-A',
u'network_view': u'default'}
default_keys:
default_keys = {'status':'Active',
'group':None,
'site':'City-A',
'role':'Production',
'description':None,
'custom_fields':None,
'tenant':None}
post_dict:
{'name': {u'value': u'Name of object'},
'sid': {u'value': 110}}
それでは、私はachiveしたいことは、ネストされたキーを取り除くことである(内キー "name"と "sid"を使用して、キーと値p空気は「名前:オブジェクトの名前」と「sid:110」である必要があります。
投稿機能はまだ定義されていません。
問題を再現するために必要なコードを投稿するようにしてください。 'ネットワークでのネットワークのための'のpythonループを '中断 'し、' network'、 'post_dict'と' default_keys'の正確な辞書を教えてください。 –
コードを整理しました – Kirke