#python #xml #api
Вопрос:
Я пытаюсь проанализировать несколько XML-ответов в одном файле. Однако, когда я пишу ответы в файл, он показывает только последний. Я предполагаю, что мне нужно где-то добавить добавление, чтобы сохранить все ответы.
Вот мой код:
import json import xml.etree.ElementTree as ET #loop test feins = ['800228936', '451957238'] for i in feins: rr = requests.get('https://pdb-services.nipr.com/pdb-xml-reports/hitlist_xml.cgi?report_type=0amp;id_fein={}'.format(i),auth=('test', 'test')) root = ET.fromstring(rr.text) tree = ET.ElementTree(root) tree.write("file.xml")
Ответ №1:
Попробуйте изменить
for i in feins: ... tree = ET.ElementTree(root) tree.write("file.xml")
к (обратите внимание на отступ):
for i in feins: ... tree = ET.ElementTree(root) with open("file.xml", "wb") as f: tree.write(f)
и посмотрим, сработает ли это.
Комментарии:
1. Привет, Джек, спасибо за быстрый ответ. Я попробовал нечто подобное. Однако, когда я попробовал ваше предложение, я получил следующую ошибку: ошибка типа: аргумент write() должен быть str, а не байт
2. @MarkoNestorovic Извините за это: это не
a
так , это такwb
. Отредактированный.3. Спасибо, Джек, я попробовал wb, и я получаю тот же результат, только последний ответ, вместо обоих.