Python:赋值前的局部变量引用

时间:2017-08-16 17:56:48

标签: python xml

我正在尝试使用Elementree将XML文件转换为Dictionary。 XML文件中有各种标记,但对于每条记录,ID标记都是主键。所以我试图创建的字典有父标记作为ID,所有其他属性作为其子键。但我得到一个unboundlocalerror说'局部变量x在赋值之前是引用。这是代码:

tree = ET.parse(xml_file)
root = tree.getroot()
temp_dict={}
def create_dict():
    test_dict = {}
    for child in root.iter():
        if subchild.tag=='ID':
                x=(child.text)
        else:
            test_dict[subchild.tag]= subchild.text
        temp_dict[x]=test_dict
    return ( temp_dict)

1 个答案:

答案 0 :(得分:0)

这不起作用,您必须使用 root 值或x初始化condition并等到找到第一个subchild
您还指定了x = test_dict而没有()

条件示例,例如:

...
temp_dict={}
x = None
def create_dict():
    ...
        if subchild.tag=='ID':
            x = test_dict
    ...
        if x:
            temp_dict[x]=test_dict

...