MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana saya bisa menggunakan Python untuk mengubah bsondump MongoDB menjadi JSON?

Apa yang Anda miliki adalah dump di Mongo Extended JSON dalam mode TenGen (lihat di sini). Beberapa cara yang mungkin untuk dilakukan:

  1. Jika Anda dapat membuang lagi, gunakan mode keluaran Ketat melalui API REST MongoDB. Itu akan memberi Anda JSON nyata alih-alih apa yang Anda miliki sekarang.

  2. Gunakan bson dari http://pypi.python.org/pypi/bson/ untuk membaca BSON yang sudah Anda miliki ke dalam struktur data Python dan kemudian melakukan pemrosesan apa pun yang Anda perlukan pada itu (mungkin menghasilkan JSON).

  3. Gunakan binding MongoDB Python untuk terhubung ke database guna memasukkan data ke Python, lalu lakukan pemrosesan apa pun yang Anda perlukan. (Jika perlu, Anda dapat menyiapkan instance MongoDB lokal dan mengimpor file yang dibuang ke dalamnya.)

  4. Ubah JSON Mongo Extended dari mode TenGen ke mode Ketat. Anda dapat mengembangkan filter terpisah untuk melakukannya (baca dari stdin, ganti struktur TenGen dengan struktur Strict, dan keluarkan hasilnya di stdout) atau Anda dapat melakukannya saat memproses input.

Berikut ini contoh penggunaan Python dan ekspresi reguler:

import json, re
from bson import json_util

with open("data.tengenjson", "rb") as f:
    # read the entire input; in a real application,
    # you would want to read a chunk at a time
    bsondata = f.read()

    # convert the TenGen JSON to Strict JSON
    # here, I just convert the ObjectId and Date structures,
    # but it's easy to extend to cover all structures listed at
    # http://www.mongodb.org/display/DOCS/Mongo+Extended+JSON
    jsondata = re.sub(r'ObjectId\s*\(\s*\"(\S+)\"\s*\)',
                      r'{"$oid": "\1"}',
                      bsondata)
    jsondata = re.sub(r'Date\s*\(\s*(\S+)\s*\)',
                      r'{"$date": \1}',
                      jsondata)

    # now we can parse this as JSON, and use MongoDB's object_hook
    # function to get rich Python data structures inside a dictionary
    data = json.loads(jsondata, object_hook=json_util.object_hook)

    # just print the output for demonstration, along with the type
    print(data)
    print(type(data))

    # serialise to JSON and print
    print(json_util.dumps(data))

Bergantung pada tujuan Anda, salah satunya harus menjadi titik awal yang masuk akal.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Perbarui array dengan beberapa kondisi di mongodb

  2. Bagaimana cara menyimpan file ke MongoDB?

  3. bagaimana cara mongoimport data ke aplikasi meteor yang digunakan?

  4. Meteor mongo memperbarui susunan bersarang

  5. Antarmuka mongo