Python“ For Loop”在调试模式下工作,但是从终端正常运行时却不能运行吗?

时间:2019-04-11 20:03:35

标签: python elementtree

非常业余的问题来了。我有这段代码可以使用Elementtree解析XML。然后,我运行一个for循环以显示所有子标记和属性。如果在调试中运行它,则可以看到终端中显示的每个嵌套元素和数据。但是,当我使用“ shift + enter”运行整个代码时(在此处使用VSCode)。

这给我这个错误

root.iter()中子代的

(Pdb): * SyntaxError:解析时出现意外的EOF (Pdb)打印(child.tag,child.attrib) * NameError:未定义名称“子代” (Pdb)

这是代码。尝试使用谷歌搜索,但我可能使用了错误的关键字。没有找到任何明确的答案。

import xml.etree.ElementTree as ET
tree = ET.parse('90301007.xml')
root = tree.getroot()
receiptid = "74925"
root.tag
root.attrib
for child in root.iter():
    print (child.tag, child.attrib)

1 个答案:

答案 0 :(得分:0)

PDB不适用于多行语句。我正在使用Python命令通过powershell运行代码,现在工作正常。奇怪的是,与调试逐行进行会使代码在PDB中工作,但无法正常运行。无论哪种方式,我都不知道为什么和怎么做,但是python命令可以解决问题。