私はMongoDBコレクションを持っています。これはPyMongoを介してPythonにインポートされたとき、Pythonの辞書です。 Numpy Arrayに変換しようとしています。例えばJSONファイルからNumpy Arrayへ
、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]]) この場合、第1列は「A」に対応し、第2列は「BA」に対応し、第3列は"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