2012-09-17 38 views
7

Me gustaría escribir un script para generar un archivo CSV desde mi base de datos mongoDB y me gustaría saber la versión más conveniente.exportando MongoDB a CSV usando pymongo

primero permítanme comenzar con la estructura de las colecciones.

MyDataBase -> setting 
       users 
       fruits 

en el establecimiento tengo algo así como

setting -> _id 
      data 
      _tenant 

y lo que busco, es hacer un archivo CSV de perfiles en datos que tienen algunos campos/propiedades como "nombre "," dirección "," código postal "," correo electrónico ", edad y etc. y no necesariamente todos estos perfiles tienen todos los archivos/propiedades e incluso algunos de ellos se parecen a la colección (tienen subdirecciones) que no me interesan en absoluto !

así, mi código es pitón hasta ahora se verá como estos

myquery = db.settings.find() # I am getting everything ! 
output = csv.writer(open('some.csv', 'wt')) # writng in this file 

for items in myquery[0:10]: # first 11 entries 
    a = list(items['data']['Profile'].values()) # collections are importent as dictionary and I am making them as list 
    tt = list() 
    for chiz in a: 
     if chiz is not None: 
      tt.append(chiz.encode('ascii', 'ignore')) #encoding 
     else: 
      tt.append("none") 
    output.writerow(tt) 

estos campos/propiedades no tienen neccessary todos los campos, y también incluso algunos de ellos son de recogida (con sub-rama) y será importado como diccionario! entonces, tengo que convertirlos a una lista y, en general, hay muy pocas cosas que cuidar en un proceso así y, en general, ¡no se ve tan sencillo!

Mi pregunta puede sonar muy general, pero ¿es una forma típica de hacer ese informe? si no, ¿alguien puede aclararlo?

+1

¿Has probado [mongoexport] (http://www.mongodb.org/display/DOCS/mongoexport)? Exportará una colección a CSV y puede ahorrarte el esfuerzo de rodar tu propia herramienta. – Stennie

+0

bueno, ¡desearía que "mongoexport" también funcionara en Python! o había algún buen IDE para que mongodb pudiera jugar con formato csv/table, más fácil. – user702846

+0

Existen varias [UI de administrador] (http://www.mongodb.org/display/DOCS/Admin+UIs), pero "agradable" es subjetivo ya que cada persona tiene diferentes requisitos y preferencias. Una opción lateral que quizás desee considerar es una [herramienta de informe] (http://www.mongodb.org/display/DOCS/Business+Intelligence). Por ejemplo, Jasper/[iReport] (http://jasperforge.org/projects/ireport) es un diseñador de informes visuales que admite MongoDB y puede exportar a múltiples formatos, incluido CSV. – Stennie

Respuesta

1

Sí, estoy usando el mismo método. Es claro y rápido, también funciona sin ninguna biblioteca adicional.

Cuestiones relacionadas