2016-07-29 28 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']]

您的日誌數據將與多個詞典列表