You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XML文件导入Snowflake遇DataFrame数据缺失问题及解决

完整读取XML文件并生成可导入Snowflake的DataFrame

问题背景

需要将每个XML文件的原始格式完整导入Snowflake,但原代码在转换为DataFrame时,仅能获取少量内容,无法读取XML中的全部5000行数据。

原代码问题分析

原代码使用np.genfromtxt读取XML文件并生成numpy数组,该函数针对CSV这类结构化文本设计,会按指定分隔符拆分内容,直接破坏了XML的完整结构,导致内容被错误拆分、截断。

原代码示例:

dated = datetime.today().strftime('%Y-%m-%d')
source_dir = r'C:\Users\jSmith\.spyder-py3\SampleXML'
table_name = 'LV_XML'
file_list = glob.glob(source_dir + '/*.XML')

data = []

for file_path in file_list:
    data.append(
        np.genfromtxt(file_path,dtype='str',delimiter='|',encoding='utf-8')) #delimiter used to make sure it is not splitting based on spaces, might be the issue? 
  
df = pd.DataFrame(list(zip(data)),
               columns =['SRC_XML'])

df['SRC_XML']=df['SRC_XML'].astype(str)

df = df.replace(',','', regex=True)

df["TPR_AS_OF_DT"] = dated

解决方案

修改文件读取逻辑,直接将整个XML文件内容拼接为单个字符串,保留原始结构,生成的DataFrame可直接导入Snowflake供后续查询使用。

解决方案代码:

for file_path in file_list:
    with open(file_path,'r') as afile:
        content = ''
        for aline in afile:
            content += aline.replace('\n',' ') # 替换换行符以保持内容连续
        data.append(content)

内容的提问来源于stack exchange,提问作者Markpelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 14:24:15