我有一个字典,其中包含网址作为关键字,打开端口作为其值。即dict200 = {}
dict200 = {}
{'http://REDACTED1.com': [21, 22, 80, 443, 3306], 'http://www.REDACTED2.com': [80, 443]}
现在我有另一个内容不同的词典,即newerdict = {}
newerdict = {}
newerdict = {'Drupal , ': '7', 'Apache , ': '2.4.34'}
现在请假设在redacted1中使用了Apache服务器,而在redacted2上使用了Drupal。
现在我想要的是这样的东西: -
{'http://redacted1.com': [{'apache': '2.4.34' }], 'http://redacted2.com': [{'Drupal': '7'}]}
希望这次我解释得更好。寻找任何回复。
修改: -
不知怎的,我能够替换值的位置,但是现在我面临的问题是,我无法在dict中访问dict的属性。
这是完整输出,
http://redacted1.com : [{'\tApache (web-servers), ': '2.4.34'}]
http://redacted2.com : [{'\tDrupal (cms), ': '7'}]
但我怎么打印
Apache = 2.4.34
答案 0 :(得分:0)
我假设您几乎没有打错字,并且可以自己进行格式化。 您需要一个映射来解决此问题。
这基本上可以解决您的问题
dict200 = {'http://redacted1.com': [21, 22, 80, 443, 3306], 'http://redacted2.com': [80, 443]}
newerdict = {'Drupal': '7', 'Apache': '2.4.34'}
mapping = {'http://redacted1.com': 'Apache', 'http://redacted2.com' : 'Drupal'}
new_output = dict()
for key, value in mapping.items():
new_output[key] = [{value: newerdict[value]}]
print(new_output)
编辑: 使用ordereddict保留python 3.5版的插入顺序。 Though python 3.7+ has it built in
from collections import OrderedDict
dict200 = OrderedDict({'http://redacted1.com': [21, 22, 80, 443, 3306], 'http://redacted2.com': [80, 443]})
newerdict = OrderedDict({'Drupal': '7', 'Apache': '2.4.34'})
dict200_index_wise = list(dict200.items())
newerdict_index_wise = list(newerdict.items())
new_output = dict()
for i in range(len(dict200)):
new_output[dict200_index_wise[i][0]] = [{newerdict_index_wise[i][0]:newerdict_index_wise[i][1]}]
print(new_output['http://redacted1.com'][0]['Drupal'])