Добавление новых ключей и значения в старый словарь без изменения ключей старого dict? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть словарь, в котором он содержит URL-адреса в качестве ключа и Открытые порты их значения.т.е. 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'}

Теперь, пожалуйста, предположим, что сервер Apache используется в отредактированном1и Drupal используется в redacted2.

Теперь, что я хочу, примерно так: -

{'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

1 Ответ

0 голосов
/ 15 августа 2018

Я предполагаю, что вы сделали несколько опечаток, и вы можете выполнить форматирование самостоятельно.Чтобы решить эту проблему, вам нужно сопоставление.

Это в основном решит вашу проблему

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)

РЕДАКТИРОВАТЬ: Использование orderdict для сохранения порядка вставки для Python версии 3.5. Хотя в Python 3.7+ он встроен

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'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...