sqlCur.execute('SELECT TOP 10 '+fld+cc.joins+cc.where,custo)
tub=sqlCur.fetchall()
De la requête ci-dessus, j'obtiens des données de SQL Server vers des tuples Python. Je convertis ces données dans la liste de OrderedDict()
et puis utilise insert_many
disponible dans pymongo
pour pousser des données à mongodb.
Pour mapper des colonnes SQL avec des colonnes mongo, j'ai un OrderedDict(cols)
qui est utilisé comme ci-dessous.python: supprime les guillemets de la chaîne à exécuter en tant que commande ou mappe une valeur de chaîne à la clé
sqlCol=list(cols.keys())
mongoCol=list(cols.values())
insArray=[]
for b in tub:
doc=OrderedDict()
lst=['b.'+x for x in sqlCol]
for v in range(len(mongoCol)):
ii=lst[v]
doc[ll[v]]=lst[v]
insArray.append(doc)
Mais, dans le résultat, je vois les noms de colonnes au lieu de valeurs parce que la liste lst
est d'avoir les noms de colonnes comme chaîne, mais il doit être mis en correspondance avec les mongoColumns sans citations .
Comment puis-je y parvenir ou y a-t-il une meilleure façon de gérer cela?
BTW, j'utilise dans Python 3.6
Pouvez-vous partager les données de l'échantillon que l'on retourne sqlCur – GThamizh
@GThamizh: Je l'obtenir a une liste de tuples comme [('Godad', 73399, 'C'), ('Godad ', 73483,' je ')] –