我正在尝试创建一个python脚本,以将SQLServer数据库转换为Mongodb。在来自SQLServer的查询中,我使用FOR JSON AUTO
方法将数据作为JSON返回。当我使用以下代码时,我无法为pymongo的var获得正确的类型以正确插入数据。
client = MongoClient('localhost', 27017)
db = client.npnrd_test
collection = db.certs
sql_file = open('./sql/F1043_Tract.sql')
sql_d = sql_file.read()
sql_file.close()
cursor.execute(sql_d)
cert_data = cursor.fetchone()
cert_list = cert_data[0]
print(cert_list)
print(type(cert_list))
当我获得cert_list的“类型”时,它是类“ str”而不是类列表,因为它应该用于pymongo。如果我打印数据并将其直接复制并粘贴到新变量中,则它是类型类列表,并在pymongo中完成。我想念什么?
答案 0 :(得分:0)
我认为您需要直接使用cert_data而不是cert_list。请尝试以下。 通常,cursor.fetchone()检索查询结果集的下一行并返回单个序列,如果没有更多行可用,则返回None。您在使用pyodbc吗?
cert_data = cursor.fetchone()
print type(cert_data)
除了使用cursor.fetchone()之外,您还可以将光标用作迭代器
for row in cursor:
print row
# use row data to insert to mongodb
根据评论更新答案。要将pyodbc.row转换为列表,可以使用简单的列表理解。
for row in cursor:
row_to_list = [elem for elem in row]