Я пытаюсь проанализировать некоторые xml из подпроцесса с распутыванием в python.
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
.
Я думал, что это может быть проблема с кодировкой и что документация поможет мне, но она кажется довольно ограниченной. Как сделать так, чтобы Untangle анализировал байтовоподобный объект?