我正在尝试解析来自于python中的解缠子进程的一些xml。
out = subprocess.run(["./my_executable",options], stdout=PIPE, stderr=PIPE)
root = untangle.parse(out.stdout)这给了我一个TypeError
Traceback (most recent call last):
File "./script.py", line 64, in <module>
root = untangle.parse(out.stdout)
File "/home/user/.local/lib/python3.6/site-packages/untangle.py", line 182, in parse
parser.parse(StringIO(filename))
TypeError: initial_value must be str or None, not bytes实际上,当我打印out.stdout时,它按预期的格式给出了xml标记,但格式如下:
b'<root>\n <c1>value1</c1>\n <c2>value2</c2>\n</root>\n'我尝试用\n删除re.sub(),但随后我得到了另一个错误:TypeError: cannot use a string pattern on a bytes-like object。
我认为这可能是一个编码问题,文档会帮助我解决这个问题,但它似乎是相当有限的。如何使解缠解析一个类似字节的对象?
发布于 2020-04-23 17:46:37
首先将类似字节的对象解码为字符串。
如果check_output以非零返回代码结尾,我在这里使用my_executable来引发异常。
out = subprocess.check_output(["./my_executable",options])
root = untangle.parse(out.decode("utf-8"))https://stackoverflow.com/questions/61393668
复制相似问题