我有一個MongoDB集合,它在通過PyMongo導入到Python時是Python中的一個詞典。 我期待將其轉換爲Numpy數組。從JSON文件到Numpy數組
舉例來說,如果JSON文件看起來像這樣:
{
"_id" : ObjectId("57065024c3d1132426c4dd53"),
"B" : {
"BA" : 14,
"BB" : 23,
"BC" : 32,
"BD" : 41
"A" : 50,
}
{
"_id" : ObjectId("57065024c3d1132426c4dd53"),
"A" : 1
"B" : {
"BA" : 1,
"BB" : 2,
"BC" : 3,
"BD" : 4
}
我想回報得到這個5 * 2 numpy的陣列: np.array([50 ,14,23,32,41], [1,1,2,3,4]]) 在這種情況下,第一列對應於「A」,第二列對應於「BA」,第三個對應「BB」等。 注意,密鑰並不總是按照相同的順序排序。
我的代碼,這並不在所有的工作(並沒有做什麼,我想還沒有)看起來是這樣的:用MongoDB的數據結構中工作時
from pymongo import MongoClient
uri = "mongodb://localhost/test"
client = MongoClient(uri)
db=client.recodb
collection=db.recos
list1=list(collection.find())
array2=np.vstack([[product[key] for key in product.keys()] for product in list1])
我不知道MongoDB的,但不是有效的JSON對象。它應該是一個字典列表嗎?此外,'ObjectId(「57065024c3d1132426c4dd53」)'不是有效的JSON項目:它應該被序列化爲某種字符串,例如''ObjectId(\「57065024c3d1132426c4dd53 \」)「'。 –
這是文件在RoboMongo中的外觀,我用它來查看這個集合。 – popuban
然後,'list1'是一個詞典列表。關於斜線,我不確定,但由於我最終沒有使用,所以它並不重要。 – popuban