def csv_to_xml_request_club():
with open('E:\\path01\\path02\\New_Dummy04.csv') as csvfile:
results = E.Lam(*(
E.INProfileRequest(
E.Identification(
E.XMLUser(row['XMLUser']),
E.XMLPassword(row['XMLPassword']),
),
E.Application(
E.FTReferenceNumber(row['FTReferenceNumber']),
E.CustomerReferenceID(row['CustomerReferenceID']),
E.EnquiryReason(row['EnquiryReason']),
E.FinancePurpose(row['FinancePurpose']),
E.AmountFinanced(row['AmountFinanced']),
E.DurationOfAgreement(row['DurationOfAgreement']),
E.ScoreFlag(row['ScoreFlag']),
E.PSVFlag(row['PSVFlag']),
),
)
for row in csv.DictReader(csvfile))
)
Приведенный выше метод используется для преобразования строк CSV в формат XML.
После выполнения строки сохраняются в формате xml в разных блоках в переменной результатов (дерево является встроенным типом дерева).То, что я хочу сделать, это вместо того, чтобы хранить все строки за раз в переменной результата (в виде различных блоков <INProfileRequest>
), я хочу брать по одной строке за раз и генерировать xml относительно нее, а затем сниматьзапрос через запрос lib и получение ответа.Затем снова повторите процесс для остальных строк одну за другой.
Переменная результатов после преобразования tostring выдает XML, как указано ниже:
#Row 1
<INProfileRequest>
<Identification>
<XMLUser>XXXXXX</XMLUser>
<XMLPassword>XXXXXX</XMLPassword>
</Identification>
<Application>
<FTReferenceNumber>XX</FTReferenceNumber>
<CustomerReferenceID>XXXXXXXX</CustomerReferenceID>
<EnquiryReason>XXX</EnquiryReason>
<FinancePurpose>XXXX</FinancePurpose>
<AmountFinanced>XXXXX</AmountFinanced>
<DurationOfAgreement>XXXX</DurationOfAgreement>
<ScoreFlag>X</ScoreFlag>
<PSVFlag></PSVFlag>
</Application>
</INProfileRequest>
#Row 2
<INProfileRequest>
<Identification>
<XMLUser>XXXXXX</XMLUser>
<XMLPassword>XXXXXX</XMLPassword>
</Identification>
<Application>
<FTReferenceNumber>XX</FTReferenceNumber>
<CustomerReferenceID>XXXXXXXX</CustomerReferenceID>
<EnquiryReason>XXX</EnquiryReason>
<FinancePurpose>XXXX</FinancePurpose>
<AmountFinanced>XXXXX</AmountFinanced>
<DurationOfAgreement>XXXX</DurationOfAgreement>
<ScoreFlag>X</ScoreFlag>
<PSVFlag></PSVFlag>
</Application>
</INProfileRequest>
В приведенной выше строке есть все«<<code>INprofileRequest>» блоки для всех соответствующих строк в csv.Я хочу взять по одному блоку за раз, то есть сначала прочитать по одной строке за раз и отправить запрос >> вернуться в csv >> рассмотреть другую строку >> запросить снова >> повторить. Надеюсь, я дал понять.Спасибо