У меня есть следующий XML-ответ:
<?xml version="1.0" encoding="utf-8"?>
<export_response xmlns:xsd="" xmlns:xsi="" xmlns="">
<success>true</success>
<row_count>2</row_count>
<offers>
<offer>
<offer_id>336</offer_id>
<offer_name>Home Page Flagship Product</offer_name>
<advertiser>
<advertiser_id xmlns="API:id_name_store">61</advertiser_id>
<advertiser_name xmlns="API:id_name_store">bradvertiser</advertiser_name>
</advertiser>
<vertical>
<vertical_id xmlns="API:id_name_store">87</vertical_id>
<vertical_name xmlns="API:id_name_store">DTC Ecom</vertical_name>
</vertical>
<offer_type>
<offer_type_id xmlns="API:id_name_store">3</offer_type_id>
<offer_type_name xmlns="API:id_name_store">3rd Party</offer_type_name>
</offer_type>
<offer_status>
<offer_status_id xmlns="API:id_name_store">1</offer_status_id>
<offer_status_name xmlns="API:id_name_store">Public</offer_status_name>
</offer_status>
<hidden>false</hidden>
</offer>
<offer>
<offer_id>337</offer_id>
<offer_name>Complimentary Product</offer_name>
<advertiser>
<advertiser_id xmlns="API:id_name_store">61</advertiser_id>
<advertiser_name xmlns="API:id_name_store">bradvertiser</advertiser_name>
</advertiser>
<vertical>
<vertical_id xmlns="API:id_name_store">87</vertical_id>
<vertical_name xmlns="API:id_name_store">DTC Ecom</vertical_name>
</vertical>
<offer_type>
<offer_type_id xmlns="API:id_name_store">3</offer_type_id>
<offer_type_name xmlns="API:id_name_store">3rd Party</offer_type_name>
</offer_type>
<offer_status>
<offer_status_id xmlns="API:id_name_store">1</offer_status_id>
<offer_status_name xmlns="API:id_name_store">Public</offer_status_name>
</offer_status>
<hidden>false</hidden>
</offer>
</offers>
<export_response>
Вот мой блок кода:
import requests
import json
import csv
from bs4 import BeautifulSoup
addOfferValues = []
for data in csv_reader:
url = ""
params = {"api_key":"",
"offer_name":"",
"offer_id":data['Offer ID'],
"advertiser_id":data['Advertiser ID'],
"vertical_id":data['Vertical ID'],
"offer_type_id":"0",
"media_type_id":"0",
"tag_id":"0",
"start_at_row":"0",
"row_limit":"0",
"sort_field":"offer_name",
"sort_descending":"TRUE",
"offer_status_id":"0"}
req = requests.get(url, params=params)
response = BeautifulSoup(req.text, 'lxml')
hidden = response.find('hidden').string
hidden = 'on' if hidden == 'true' else 'off'
addOfferParams = {"api_key":"",
"offer_id":"0",
"advertiser_id":response.find('advertiser_id').string,
"vertical_id":response.find('vertical_id').string,
"offer_name":response.find('offer_name').string,
"third_party_name":"",
"hidden":hidden,
"offer_status_id":response.find('offer_status_id').string,
"offer_type_id":response.find('offer_type_id').string}
addOfferValues.append(addOfferParams)
addOfferReq = requests.get('https://cs1', params=addOfferParams)
Моя цель - захватить первое предложение:
<offer>
<offer_id>336</offer_id>
<offer_name>Home Page Flagship Product</offer_name>
<advertiser>
<advertiser_id xmlns="API:id_name_store">61</advertiser_id>
<advertiser_name xmlns="API:id_name_store">bradvertiser</advertiser_name>
</advertiser>
<vertical>
<vertical_id xmlns="API:id_name_store">87</vertical_id>
<vertical_name xmlns="API:id_name_store">DTC Ecom</vertical_name>
</vertical>
<offer_type>
<offer_type_id xmlns="API:id_name_store">3</offer_type_id>
<offer_type_name xmlns="API:id_name_store">3rd Party</offer_type_name>
</offer_type>
<offer_status>
<offer_status_id xmlns="API:id_name_store">1</offer_status_id>
<offer_status_name xmlns="API:id_name_store">Public</offer_status_name>
</offer_status>
<hidden>false</hidden>
</offer>
и сохраните в моем addOfferParams Dict, который я успешно выполнил. Если row_count больше 1, я хочу, чтобы данные второго предложения или любые дополнительные предложения были сохранены в моем списке addOfferValues. Затем я сделаю второй запрос с этими точками данных. Я был бы признателен за любой совет здесь, поскольку столкнулся с контрольно-пропускным пунктом новичка. Заранее спасибо!