Hea*_*ath 7 python sql-server pymongo-3.x
我正在尝试创建一个 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))
Run Code Online (Sandbox Code Playgroud)
当我得到 cert_list 的“类型”时,它是一个类“str”而不是类列表,因为它应该用于 pymongo。如果我打印数据并将其直接复制并粘贴到新变量中,则它是一个类型类列表并在 pymongo 中完成。我错过了什么?
我相信您需要直接使用 cert_data 而不是 cert_list。下面试试。通常 cursor.fetchone() 检索查询结果集的下一行并返回单个序列,如果没有更多行可用,则返回 None 。你用的是pyodbc吗?
cert_data = cursor.fetchone()
print type(cert_data)
Run Code Online (Sandbox Code Playgroud)
除了使用 cursor.fetchone(),您还可以使用游标作为迭代器
for row in cursor:
print row
# use row data to insert to mongodb
Run Code Online (Sandbox Code Playgroud)
根据评论更新答案。要将 pyodbc.row 转换为列表,您可以使用简单的列表理解。
for row in cursor:
row_to_list = [elem for elem in row]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11108 次 |
最近记录: |