python - 如何使用python在SQL Server中将字符串数据类型类型的行转换为XML数据类型
问题描述
我将 Web 源存储在我的 SQL Server 表中作为varchar
. 该表有 1000 个这些网络资源。手动打开每个 XML 源将其保存为 XML 数据并以 XML 数据类型存储在 SQL Server 表中是一个繁琐的过程。请帮助使用 SQL 或 Python 中的任何脚本,这些脚本可以遍历我的表中的列表并将每个链接保存为 SQL Server 表中的 XML 数据类型。我正在为多个 XML 粉碎准备这些文件。谢谢你的帮助。
select * from [dbo].[FormIndex]
我附上了我的表格片段。
最终目标如下表。以下是其中一个手动存储为 XML 时的样子。手动完成数千个非常困难,因此我决定使用 python 代码打开存储在 SQL Server 中的字符串,打开它,将 url 保存为XML
数据类型并将其存储回表中。
请帮忙 - 谢谢
这是我用来将表作为 pandas 数据框拉取并遍历每个varchar
url、打开它并将其作为数据保存回 SQL Server 表的 Python 代码XML
。但我无法运行它
第一个工作正常并返回正确的结果,返回一个 XMLLink 表(我用来在 SQL Server 中存储 XML 字符串的列名):
##From SQL Server database to DataFrame Pandas
import pandas as pd
import pyodbc
cnxn = pyodbc.connect
cnxn = pyodbc.connect(
r'Trusted_Connection=yes;'
r'DRIVER={ODBC Driver 13 for SQL Server};'
r'SERVER=*****;'
r'DATABASE=IRS-900;'
r'UID=*****;'
r'PWD=*****;'
)
query = "SELECT XMLLink FROM [IRS-900].[dbo].[FormIndex]"
df = pd.read_sql(query, cnxn)
print(df.head(7))
但是当我构建 for 循环以遍历数据框时,它会引发错误。这是代码
import os
import pyodbc
import datetime
import pyodbc
import urllib
import pandas as pd
##From SQL Server database to DataFrame Pandas
cnxn = pyodbc.connect
cnxn = pyodbc.connect(
r'Trusted_Connection=yes;'
r'DRIVER={ODBC Driver 13 for SQL Server};'
r'SERVER=*****;'
r'DATABASE=IRS-900;'
r'UID=*****;'
r'PWD=*****;'
)
query = "SELECT XMLLink FROM [IRS-900].[dbo].[FormIndex]"
df = pd.read_sql(query, cnxn)
##print(df.head(7))
for xmlpath in df:
xmlurl=urllib.request.urlopen(xmlpath)
xml_as_string = xmlurl.read()
cursor = cnxn.cursor()
cursor.execute("insert into Test_Table values ('Text', 1, '"+ xml_as_string +"')")
cnxn.commit()
dData = cursor.fetchall()
解决方案
尝试在循环中打印出 xmlpath 变量。
直接循环数据框只会产生列名,因此 xmlpath 变量所拥有的唯一值是列标题 - “XMLLink”。
在您的帖子中不提及其他任何内容,循环遍历这些值的正确方法是:
for xmlpath in df["XMLLink"]:
print(xmlpath)
狩猎愉快!
推荐阅读
- ios - 仅当已经滚动到表格底部时,如何滚动到新插入的行?
- android - Android 中的 Kotlin - 暂停房间中的功能
- java - 如何解决 Android MultiDex 应用实例空指针异常?
- python - 如何在 Python 中为 Ant 媒体 API 发送发布请求
- php - 在 wordpress 中使用循环时使 div 并排显示
- javascript - 无法在高位图表中显示带有 {hh:mm} 的 datetimelabel 格式的 x 轴数据
- core-data - 如何处理 SwiftUI 视图之间的 master/detail CoreData
- android - 是否可以通过 android 中的电话以编程方式传输音频文件?
- javascript - 在 html 表中填充天数
- flutter - Flutter:使用底部导航栏为应用栏颜色设置动画