Я читаю в файле XML и пытаюсь извлечь из него данные.Мне нужны все экземпляры «Description», у которых есть определенный идентификатор, связанный с типом Description, а затем мне нужно значение или текст описания.
des_id = получает все идентификаторы описания для элемента
des_value = захватывает все значения для этих идентификаторов
словарь des_ids = ассоциирование des_id с значением des_val в словаре
словарь описаний = ассоциирование номера элемента со словарем des_ids
когда я иду на экспорт в .csv, если выглядит как последний номер элемента в данных описания файла xml, перебирает все части в списке.Мне нужны индивидуальные коды описания со значениями для каждого номера элемента в файле.
Показывает фрагмент кода, где я знаю, что все портится, как я задумал.
for part in soup.find_all('Item'):
for x in part.find_all('PartNumber'):
partNum = x.get_text()
for description in part.find_all('Description'):
des_id = description.get('DescriptionCode') # key
des_value = description.get_text() # value
des_ids[des_id] = des_value
descriptions[partNum] = [des_ids]
Любая помощь очень ценится!
SAMPLE XML:
<Items>
<Item MaintenanceType="A">
<PartNumber>2000207</PartNumber>
<Descriptions>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="ASC">Here's a sample ASC description for 2000207</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="ASM">2000207 sample ASM description</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="DEF">2000207 Product</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="DES">This is some text for 2000207</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="EXT">Modified text kit for 2000207</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="INV">Invoice desc for 2000207</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="KEY">THE KEY for 2000207</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="SHO">Pretty Short description for 2000207</Description>
</Descriptions>
</Item>
<Item MaintenanceType="A">
<HazardousMaterialCode>N</HazardousMaterialCode>
<PartNumber>2000408</PartNumber>
<Descriptions>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="ASC">Here's a sample ASC description for 2000208</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="ASM">2000208 sample ASM description</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="DEF">2000208 Product</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="DES">This is some text for 2000208</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="EXT">Modified text kit for 2000208</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="INV">Invoice desc for 2000208</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="KEY">THE KEY for 2000208</Description>
<Description MaintenanceType="A" LanguageCode="EN" DescriptionCode="SHO">Pretty Short description for 2000208</Description
</Description>
</Item>
</Items>
Ouput - это 3 колонки csv с PartNum |des_id |des_value