为什么函数编写器不能在我的代码中工作?

2024-10-01 09:34:24 发布

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

我正在尝试将xml解析为csv报告,但遇到错误。“DictWriter“在我的PyCharm代码中没有变蓝。此外,如果我想添加列标题,我会在哪里列出这些标题?提前感谢您提供的任何帮助

import csv
import xml.etree.ElementTree as et
from collections import OrderedDict

doc = et.parse('response.xml')

csv_data = []

fields = ['SubjectKey', 'Action']

for elem in doc.findall('.//AuditRecord'):
    inner_dict = OrderedDict({k: None for k in fields})  # PRE-POPULATES TEMP DICT

    inner_dict['SubjectKey'] = elem.attrib['SubjectKey']

    for item in elem.findall('.//*'):
        if item.tag in fields:
            if item.tag == 'AuditRecord':
                inner_dict['AuditRecord_Action'] = item.attrib['Action']

            else:
                inner_dict[item.tag] = item.text

    csv_data.append(inner_dict)

with open('Output.csv', 'w', newline='') as f:
    w = csv.DictWriter(f, csv_data[0].keys())
    w.writeheader()
    w.writerows(csv_data)

这是我得到的错误,然后得到一个空白的.csv:

 w = csv.DictWriter(f, csv_data[0].keys())
IndexError: list index out of range

Tags: csvinimportfieldsfordataactionxml