2015-10-30 70 views
-1

我有一個列表如下,我已經修剪了列表。數據是按日期排列的。因此,對於每個日期都有不同項目的值。列表中的每個指標是一本字典將列表中的字典插入python中的數據庫中

ls=[{'item1': 6755, 'item2': 20, 'item3': 3, 'item4': 8.04, 'item5': 24, 'item6': 208, 'date': 'Thu. 29 Oct. 2015', 'item6': 329, 'datetime': datetime.datetime(2015, 10, 29, 0, 0), 'item7': 31, 'item8': 1.24, 'item9': 28.00, 'item10': 10},{'item1': 67, 'item2': 202, 'item3': 33, 'item4': 28.04, 'item5': 234, 'item6': 2308, 'date': 'Thu. 30 Oct. 2015', 'item6': 3249, 'datetime': datetime.datetime(2015, 10, 30, 0, 0), 'item7': 331, 'item8': 21.24, 'item9': 238.00, 'item10': 410}] 

我的表結構如下:

Datetime,Item,Value 

我需要按日期插入每個項目的成這種形式,並在列表中排除日期字段。 我是新的與python不能得到如何去做這件事。我每個項目去分開表列前已經做了,但在這裏它是不同的,我需要插入選擇性的數據,即(不包括從列表中日期字段)

+1

看看https://stackoverflow.com/questions/8316176/insert-list-into-my-database-using-python初學者。 –

+0

感謝邁克,但我的要求是不同的 – D14

+0

我有列表內的子列表,並且這些子列表的值需要更新 – D14

回答

1

您有三個任務:

  1. 排除從列表中選擇日期字段
  2. 設置Python來運行SQL命令
  3. 創建代碼以將數據插入到數據庫

我不是100%確定你希望如何存儲你已經包含在數據庫中的數據,但是我會給出我最好的猜測。

items_to_insert = [] 
for dictionary in ls: 
    #pop removes the value from the dict 
    date_for_insert = dictionary.pop("datetime", None) 
    if date_for_insert is None: 
    raise ValueError('No datetime - aborting') 
    for key in dictionary: 
    items_to_insert.append([date_for_insert, key, dictionary[key] 

此代碼會轉到ls列表中的每個字典,刪除日期時間,然後將數據解析到數組中。現在你設置插入有關任務2,您需要使用PyMySQL或類似的東西的數據

,並設置連接和東西,然後任務3執行命令

for item in items_to_insert: 
    cursor.execute("INSERT INTO mytable (Datetime,Item,Value) VALUES ('{}', '{}', '{}')".format(item[0], item[1], item[2])) 

或類似的東西。由於上面的數據預處理,這條線更容易。

您可能需要以某種方式格式化日期時間,以使此代碼正常工作。

+0

謝謝...我得到此代碼的鍵入字典的語法錯誤: items_to_insert.append ([date_for_insert,key,dictionary [key]) – D14

+0

添加是因爲type(ls)是一個列表,這裏使用了字典解析...只是猜測 – D14

+0

@ D14不,我只是忘了2個括號。您應該配置您的代碼編輯器以突出顯示括號匹配。我已經更新了我的答案以修復缺失的括號,並進行了測試以確保代碼沒有語法錯誤。 –

相關問題