Добавление XML-ответов на Python

#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, и я получаю тот же результат, только последний ответ, вместо обоих.