comment pousser un csv des données dans mongodb à l'aide de python

En essayant de repousser les csv les données dans mongodb à l'aide de python.je suis débutant en python & mongodb..j'ai utilisé le code suivant

import csv
import json
import pandas as pd
import sys, getopt, pprint
from pymongo import MongoClient
#CSV to JSON Conversion
csvfile = open('C://test//final-current.csv', 'r')
jsonfile = open('C://test//6.json', 'a')
reader = csv.DictReader( csvfile )
header= [ "S.No", "Instrument Name", "Buy Price", "Buy Quantity", "Sell Price", "Sell Quantity", "Last Traded Price", "Total Traded Quantity", "Average Traded Price", "Open Price", "High Price", "Low Price", "Close Price", "V" ,"Time"]
#fieldnames=header
output=[]
for each in reader:
    row={}
    for field in header:
        row[field]=each[field]
    output.append(row)

json.dump(output, jsonfile, indent=None, sort_keys=False , encoding="UTF-8")
mongo_client=MongoClient() 
db=mongo_client.october_mug_talk
db.segment.drop()
data=pd.read_csv('C://test//6.json', error_bad_lines=0)
df = pd.DataFrame(data)
records = csv.DictReader(df)
db.segment.insert(records)

mais le résultat est donné dans ce format

/* 0 */
{
  "_id" : ObjectId("54891c4ffb2a0303b0d43134"),
  "[{\"AverageTradedPrice\":\"0\"" : "BuyPrice:\"349.75\""
}

/* 1 */
{
  "_id" : ObjectId("54891c4ffb2a0303b0d43135"),
  "[{\"AverageTradedPrice\":\"0\"" : "BuyQuantity:\"3000\""
}

/* 2 */
{
  "_id" : ObjectId("54891c4ffb2a0303b0d43136"),
  "[{\"AverageTradedPrice\":\"0\"" : "ClosePrice:\"350\""
}

/* 3 */
{
  "_id" : ObjectId("54891c4ffb2a0303b0d43137"),
  "[{\"AverageTradedPrice\":\"0\"" : "HighPrice:\"0\""
}

En fait, je veux de la sortie, comme pour un seul id de tous les autres champs devrait être montré que les sous-types
par exemple:

 _id" : ObjectId("54891c4ffb2a0303b0d43137")
    AveragetradedPrice :0
    HighPrice:0
    ClosePrice:350
    buyprice:350.75

Merci de m'aider.Merci d'avance

  • de sortie.append(ligne) => db.segment.insert(ligne)
  • mais si je pousse directement à mongodb ,il produit InvalidDocument: clé 'S. No' ne doit pas contenir de '.'
  • Faire de l'en-tête comme une dict à la carte s.pas comme s_no de sorte qu'il sera accetable json clé
  • Est-il une raison particulière de ne pas utiliser mongoimport?
  • Enfin je l'ai eu fait.Merci
InformationsquelleAutor Viswanathan | 2014-12-11