簡體   English   中英

將存儲在變量中的字典值添加到列表python3中

[英]Add dictionary values stored in variable to the list python3

我是python的新手。 我想將字典(鍵和值)連續添加到列表中。 該列表已經包含一些字典值。 應該在它旁邊添加它。 有什么建議請...

這是代碼:

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})]

您可以使用拆包:

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

另外,您在result中缺少右括號; 我添加了它。如果您只打算使用一組括號,請在前面和后面刪除一個括號。

您可以在此處閱讀有關此功能的更多信息。

您可以解壓縮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

您可以嘗試:

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

嘗試這個

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)
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'})]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM