我正在做一個相當簡單的插入到來自Python熊貓DataFrame的本地MongoDB。基本上我調用datframe.loc [n] .to_dict()並直接從df獲取我的字典。到目前爲止,所有的都很好,直到我嘗試插入,我得到'無法編碼對象'。看直接表明,一切看起來不錯,但後來(寫這個問題時)它使我想檢查在字典中的每種類型,並發現一個長的ID號已轉換爲numpy.int64,而不是一個簡單的int(當我手動創建了dict,因爲int會插入正確)。插入到MongoDB retuns無法編碼對象
因此,我無法在熊貓文檔中找到任何關於向to_dict添加參數的內容,這將允許我重寫此行爲,並且有強力方法來解決此問題,但必須有更多雄辯的方式在不訴諸於此類事情的情況下對這個問題進行分類。
問題是,如何將一行數據框轉換爲字典插入到MongoDB,確保我只使用可接受的內容類型...或者,我可以在這裏進一步備份並使用更簡單的方法讓數據框的每一行成爲Mongo內的文檔?
感謝
按照要求,這裏是一個增編後與我使用的數據樣本。
{'Account Created': 'about 3 hours ago',
'Followers': 13,
'Following': 499,
'Screen Name': 'XXXXXXXXXX',
'Status': 'Alive',
'Tweets': 12,
'Twitter ID': 0000000000L}
這直接來自插入時發生故障的to_dict輸出。我直接將其複製到「測試」字典中,並且工作得很好。如果我打印出每個類型的字典,我得到以下的值...
to_dict = ['Alive', 'a_aheref77', 'about 3 hours ago', 12, 13, 499, 0000000000L, ObjectId('551bd8cfae89e9370851aa64')]
test = ['Alive', 'XXXXXXXX', 'about 3 hours ago', 499, 13, 12, 0000000000, ObjectId('551bd6fdae89e9370851aa63')]
唯一的區別(據我可以告訴)是long int類型,其中有趣的是,當我做了蒙戈插入它將該字段顯示爲文檔中的「Number Long」。希望這個幫助澄清索姆。
你可以顯示一個數據的例子是導致錯誤? – 2015-04-01 13:03:44
沒問題,我用數據編輯了問題 – Thatch 2015-04-01 13:48:04