【发布时间】:2019-11-25 22:02:33
【问题描述】:
我在使用 Python 将 XML 解析为数据框时遇到问题。当我打印出这些值时,一些值似乎“填充”或重复。 (见列地址)。有谁知道可能出了什么问题?
import xml.etree.ElementTree as et
import pandas as pd
import xmltodict
import json
tree = et.parse('20191125_DMG_PI.xml')
root = tree.getroot()
df_cols = ["status", "priref", "full_name", "detail", "adres"]
rows = []
for record in root:
for child in record:
s_priref = child.get('priref')
for field in child.findall('Address'):
s_address = field.find('address').text
#for sub in field.findall('address.country'):
# s_country = sub.find('value').text if s_country is not None else None
for field in child.findall('name'):
s_full_name = field.find('value').text
for field in child.findall('name.status'):
s_status = field.find('value').text
for field in child.findall('level_of_detail'):
s_detail = field.find('value').text
rows.append({"status": s_status,
"priref": s_priref,
"full_name": s_full_name,
"detail": s_detail,
"adres": s_address},)
out_df = pd.DataFrame(rows, columns=df_cols)
print(out_df)
【问题讨论】:
-
您应该在每次循环之前清除所有变量 - 您可以分配空字符串。如果您不这样做,那么它们仍然具有上一个循环的价值 - 如果新项目没有自己的价值。
-
我该怎么做?我是新手。谢谢你的帮助:)
-
通常在循环
for child in record:-s_status = ""开始时将空字符串分配给变量。s_priref = ""等 -
@OlivierVanDhuynslager 如果它解决了问题,请不要忘记接受答案,以便相应地标记问题
标签: python xml pandas elementtree