我是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})]
答案 0 :(得分:4)
您可以使用打开包装:
result = [((timestamp, {'monitor.ip': ip, 'monitor.status': 'up', **fields}))]
此外,您在result
中缺少右括号;我将其添加进来。如果您只打算使用一组括号,请在前面和后面删除一个括号。
您可以了解有关此功能here的更多信息。
答案 1 :(得分:2)
您可以打开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=...
的{{1}}带有多余的SyntaxError
,因此在答案中将其删除。
为了确保这一点,在Python 3.5中引入了(
。在python 3.4或更低版本的情况下,这将引发unpacking
,因此必须使用不同的方法,例如SyntaxError
答案 2 :(得分:1)
您可以尝试:
my_dict = {'monitor.ip': ip, 'monitor.status': 'up'}
my_dict.update(fields)
result = [(timestamp, my_dict)]
答案 3 :(得分:0)
尝试
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)
答案 4 :(得分:0)
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'})]