从xml文件附加列表

2024-10-04 07:37:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有不同的XML文件和一些标记。当我想从XML文件中附加关键字时,我不能用相同的结构附加它们。关键字是列表,所以我需要一个列表列表来附加它们。当我尝试dictionary方法时,我只为每个id索引一个标记,而不是整个列表。你知道吗

我试着用元组和zip来实现这一点,但是得到了相同的结果,每个id有一个标记

这是用于检索关键字的基本代码。你知道吗

keywords = [[] for i in range (4)]
for infil in glob.glob( os.path.join(path, '*.xml') ):
   tree = et.parse(infil)
   root = tree.getroot()
   for keyword in root.find(".//keywords"):
           if keyword.text is not None:
                keywords.append(keyword.text)

我希望有这样的输出,但我只有一个列表,而不是列表列表。你知道吗

 {'symbol': ['CEDAW/SP/1998/1',
 'CEDAW/SP/1998/2',
 'CEDAW/SP/1998/3',
 'CEDAW/SP/1998/4'],
 'jobno': ['N9801528', 'N9802769', 'N9801085', 'N9812464'],
 'dat': ['19980121', '19980206', '19980111', '19980501'],
 'language': ['English', 'English', 'English', 'English'],
 'keywords': [(['AGENDA'],
  ["WOMEN'S STATUS",
  'TREATIES',
  'SIGNATURES, ACCESSIONS, RATIFICATIONS',
  'RESERVATIONS AND DECLARATIONS',
  'GENDER DISCRIMINATION'],
   ['ELECTION OF MEMBERS', 'BIOGRAPHY'],
   ["WOMEN'S RIGHTS", "WOMEN'S STATUS", 'PERIODIC REPORTS'])]}

Tags: 文件in标记id列表forenglish关键字
1条回答
网友
1楼 · 发布于 2024-10-04 07:37:59

似乎您只指定要附加到的顶级列表。所以当你做[[], [], [], []].append(1)的时候,你会得到[[], [], [], [], 1]。你知道吗

需要指定内部列表,如list[i].append(keyword.text),因此需要以某种方式获取索引。你知道吗

# make it scalable so it will work even if you add more XML files
paths = glob.glob( os.path.join(path, '*.xml') )
keywords = [[] for i in range(len(paths))

for i in range(len(paths)):
    tree = et.parse(paths[i])
    root = tree.getroot()
    for keyword in root.find(".//keywords"):
        if keyword.text is not None:
            keywords[i].append(keyword.text) # change is here

相关问题 更多 >