Добавить значения словаря, хранящиеся в переменной, в список python3 - PullRequest
0 голосов
/ 19 февраля 2019

Я новичок в питоне.Я хочу постоянно добавлять словарь (ключи и значения) в список.Список уже содержит некоторые значения словаря.Это должно быть добавлено рядом с ним.Любые предложения, пожалуйста ...

Вот код:

from datetime import datetime

fields = {'a': 'steven', 'b': 'kumar'}
timestamp = datetime.now().strftime("%B %d %Y, %H:%M:%S")
ip ='192.168.1.1'

result = [((timestamp, {'monitor.ip': ip, 'monitor.status': 'up', fields})]
print (result)

Требуемый вывод:

[((February 19 2019, 13:18:53, {'monitor.ip': ip, 'monitor.status': 'up', 'a':'steven','b':'kumar})]

Ответы [ 5 ]

0 голосов
/ 19 февраля 2019
from datetime import datetime

fields = {'a': 'steven', 'b': 'kumar'}
timestamp = datetime.now().strftime("%B %d %Y, %H:%M:%S")
ip ='192.168.1.1'
new_dic = {'monitor.ip': ip, 'monitor.status': 'up'}
new_dic.update(fields)

result = [((timestamp, new_dic))]
print (result)

# output
# [('February 19 2019, 13:30:50', {'monitor.ip': '192.168.1.1', 'monitor.status': 'up', 'a': 'steven', 'b': 'kumar'})]
0 голосов
/ 19 февраля 2019

Вы можете распаковать свой fields:

from datetime import datetime

fields = {'a': 'steven', 'b': 'kumar'}
timestamp = datetime.now().strftime("%B %d %Y, %H:%M:%S")
ip ='192.168.1.1'
result = [(timestamp, {'monitor.ip': ip, 'monitor.status': 'up', **fields})]
print (result)
[('February 19 2019, 16:57:22', {'monitor.ip': '192.168.1.1', 'b': 'kumar', 'a': 'steven', 'monitor.status': 'up'})]

Кстати, оригинальный код result=... имел SyntaxError с избыточностью (, который удаляется в ответ.

Чтобы убедиться, что unpacking был введен в Python 3.5.В случае Python 3.4 или ниже, это повысит SyntaxError и, следовательно, придется использовать различные подходы, такие как dict.update

0 голосов
/ 19 февраля 2019

попробуйте

from datetime import datetime

fields = {'a': 'steven', 'b': 'kumar'}
timestamp = datetime.now().strftime("%B %d %Y, %H:%M:%S")
ip ='192.168.1.1'

fields.update({'monitor.ip': ip, 'monitor.status': 'up'})
result = [timestamp, fields]
print (result)
0 голосов
/ 19 февраля 2019

Вы можете использовать распаковку:

result = [((timestamp, {'monitor.ip': ip, 'monitor.status': 'up', **fields}))]

Также вы пропустили закрывающие скобки в result;Я добавил его. Если вы хотели иметь только 1 набор скобок, удалите одну скобку спереди и сзади.

Подробнее об этой функции можно прочитать здесь .

0 голосов
/ 19 февраля 2019

вы можете попробовать:

my_dict = {'monitor.ip': ip, 'monitor.status': 'up'}
my_dict.update(fields)
result = [(timestamp, my_dict)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...