2016-07-29 32 views
2

添加到字典中我有以下字典(这是创建JSON),的Python:在列表

temp = {'logs':[]} 

我要追加的辞典,但是我只拿到了1个键:VAL在同一时间。

我的尝试:

temp['logs'].append({key:val}) 

这并不如预期并追加字典的数组。 但现在我想添加一个键/ val对这个词典,我该怎么做? 我试过使用append/extend,但只是将一个新的字典添加到列表中。

+0

我已经尝试寻找堆栈溢出了。请不要低估我的问题。如果你能找到这样的问题,我会很感激。提出一个新问题,意味着它是我的最后手段。 – Islarf

+0

你能分享一个你想得到的输出的例子吗?我担心我没有妥善处理这个问题。 – Mureinik

+0

尝试'temp ['logs']。append((key,val))' –

回答

1

但现在我想一个键/值对添加到这个字典

可以指数列表和更新那本字典:

temp['logs'][0].update({'new_key': 'new_value'}) 
+0

这可能实际上是我在寻找的谢谢!我会给它一个! – Islarf

+0

* downvoter *可以请留下评论,以防我错过了什么 –

+0

似乎回答了这个问题imo – pwnsauce

0

您可以使用这个命令来改变你的字典值:

>>> temp['logs'][0]={'no':'val'} 
>>> temp 
{'logs': [{'no': 'val'}]} 

而这其中增加值:

>>> temp['logs'][0].update({'yes':'val'}) 
>>> temp 
{'logs': [{'key': 'val', 'yes': 'val'}]} 
0

必须有独特的“钥匙”每次追加它的时间。 (如果是JSON)

也使“=”将更新您的旧字典

,当我被卡住了,一旦我做了什么是

user = {} 
name,password,id1 = [],[],[] 
user1=session.query(User).all() 
for i in user1: 
    name=i.name 
    password=i.password 
    id1=i.id 
    user.update({ id1:{ 
      "name" : name, 
      "password" : password, 
      } 
     }) 

检查此链接可能对你有帮助

How to convert List of JSON frames to JSON frame

0

请注意,添加一个字典(或任何对象)的列表只存储一个参考,而不是拷贝。

您可以为此做:

>>> temp = {'logs': []} 
>>> log_entry = {'key1': 'val1'} 
>>> temp['logs'].append(log_entry) 
>>> temp 
{'logs': [{'key1': 'val1'}]} 
>>> log_entry['key2'] = 'val2' 
>>> temp 
{'logs': [{'key2': 'val2', 'key1': 'val1'}]} 

但是,您可能能够通过使用字典理解,以规避对整个问题(仅在Python> = 2.7)

>>> temp = {'logs': [{key: value for key, value in my_generator}] 
0

试试这个例子:

temp = { 'logs':[] }

[temp['logs'].append(log) for log in errors['logs']]

您的日志数据将与多个词典列表