Python pyodbc.row 列出
Python pyodbc.row to list
我正在尝试创建一个 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 的 "type" 时,它是一个 class 'str' 而不是 class 列表,因为它应该是 pymongo。如果我打印数据并将其直接复制并粘贴到一个新变量中,它是一个类型 class 列表并在 pymongo 中完成。我错过了什么?
我认为您需要直接使用 cert_data 而不是 cert_list。试试下面。
通常 cursor.fetchone() 检索查询结果集的下一行和 returns 单个序列,或者 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]
我正在尝试创建一个 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 的 "type" 时,它是一个 class 'str' 而不是 class 列表,因为它应该是 pymongo。如果我打印数据并将其直接复制并粘贴到一个新变量中,它是一个类型 class 列表并在 pymongo 中完成。我错过了什么?
我认为您需要直接使用 cert_data 而不是 cert_list。试试下面。 通常 cursor.fetchone() 检索查询结果集的下一行和 returns 单个序列,或者 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]