【发布时间】:2023-04-02 04:11:02
【问题描述】:
我在我的 SQL Server 表中存储了 Web 源代码 varchar
。该表有 1000 个这些网络资源。手动打开每个 XML 源将其保存为 XML 数据并以 XML 数据类型存储在 SQL Server 表中是一个繁琐的过程。请帮助使用 SQL 或 Python 中的任何脚本,这些脚本可以遍历我的表中的列表并将每个链接保存为 SQL Server 表中的 XML 数据类型。我正在为多个 XML 粉碎准备这些文件。感谢您的帮助。
select * from [dbo].[FormIndex]
我已附上我的桌子的 sn-p。
最终目标是下表。以下是其中一个手动存储为 XML 时的样子。手动完成数千个非常困难,所以我决定使用 python 代码打开存储在 SQL Server 中的字符串,打开它,将 url 保存为 XML
数据类型并将其存储回表中。
请帮忙 - 谢谢
这是我用来将表作为 pandas 数据框拉取并遍历每个 varchar
url 的 Python 代码,打开它并将其作为 XML
数据保存回 SQL Server 表。但我无法运行它
第一个工作正常并返回正确的结果,返回一个 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()
【问题讨论】:
标签:
python
sql-server
xml
pandas-datareader
urlopen
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用python在SQL Server中将字符串数据类型类型的行转换为XML数据类型 - Python技术站