Извлечение даты и времени из xml-файла: python

XML-древовидная структураДревовидная структура XML (продолжение

Код ниже написан на Python

import os

import lxml.etree as ET

import re

os.chdir(r'C:\Users\Wadi\Desktop')

tree = ET.parse('XMLData.xml')

pathology_case_retrieval_report = tree.getroot()

0-й дочерний элемент корневого элемента (Pathology_case_retrieval_report) - это тег report_info. Этот тег не содержит информации ни о каком конкретном случае. Отдельные случаи начинаются с CASE в индексе 1 корневого элемента.

for case in pathology_case_retrieval_report[1:]:

Все CASE имеют 3 дочерних тега: caseAccesion, caseDetails и caseReport.

    for caseAccesion_caseDetails_caseReport in case:
        for reportSection in caseAccesion_caseDetails_caseReport:
            for title_text in reportSection:
                if title_text.tag == 'TITLE':
                    if title_text.text == 'Gross Description':
                        x = 'Gross Description'+ ':' +title_text.getnext().text
                        print(x)

Мы ищем только теги TITLE внутри REPORT_SECTION. Из тегов TITLE внутри REPORT_SECTION нас интересуют только те, между которыми есть «Общее описание». Из тегов TITLE внутри REPORT_SECTION, между которыми есть «Общее описание», нас интересует только текстовая информация его непосредственного (и единственного родственника).

Вот пример того, как выглядит результат:

Gross Description: TEXT TEXT TEXT TEXT TEXT.

Specimen collected: d-d-dd/dd:dd. Specimen placed in formalin: dd:dd.

Gross Description: TEXT TEXT TEXT TEXT TEXT Specimen collected: dd:dd. Specimen placed in formalin: dd:dd.

Gross Description: TEXT TEXT TEXT TEXT TEXT.

Specimen collected: d-d-dd/dddd. Specimen placed in formalin: dddd/d-d-dd.

TEXT TEXT TEXT TEXT TEXT

Specimen collected: d-d-dd/dddd. Specimen placed in formalin: dddd/d-d-dd.

Я написал регулярное выражение для захвата строки «Образец собран: d-d-dd / dddd. Образец помещен в формалин: dddd / d-d-dd '. Однако в конечном итоге мне нужно зафиксировать только дату и время (преобразовать в целые числа). Как бы я это сделал?

Кроме того, когда я «печатаю (x)», я хочу, чтобы данные выглядели так:

1) Gross Description: The specimen,...
Specimen collected: dd:dd. Specimen placed in formalin: dd:dd.
2) Gross Description: Specimen A, ...
Specimen collected: d-d-dd/dddd. Specimen placed in formalin: dddd/d-d-dd.
Specimen B, ...
Specimen collected: d-d-dd/dddd. Specimen placed in formalin: dddd/d-d-dd.

По сути, я хотел бы, чтобы каждое общее описание было пронумеровано, чтобы я мог отслеживать его. Как мне их пронумеровать?

заранее спасибо

0
0
43
1

Ответы 1

Соберите данные результата в список кортежей, добавьте переменную счетчика в цикл, а при добавлении данных в кортеж также добавьте туда значение счетчика. Затем, когда вы распечатаете результат (список), затем распечатайте каждый элемент, который может быть: - значение счетчика (номер заказа); - полное описание; - информация об образце и т. д.

Спасибо. Я пытался найти способ собрать свои результаты в списке? Любые идеи?

Uwadia Edomwonyi 02.11.2018 03:28

Я понял. Спасибо

Uwadia Edomwonyi 02.11.2018 20:51

rossDescriptionslist = [] для case в pathology_case_retrieval_report [1:]: для caseAccesion_caseDetails_caseReport в случае: для reportSection в caseAccesion_caseDetails_caseReport: для title_text в reportSection: if (title_text.tag == 'TITLE') и title_text.text = GrossDescriptions = 'Общее описание' + ':' + title_text.getnext (). text GrossDescriptionslist.append (rossDescriptions)

Uwadia Edomwonyi 03.11.2018 15:29

Другие вопросы по теме