Выводится дополнительное значение «Нет», и я не знаю, почему - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь проанализировать XML-документ, используя две функции: одну для анализа заголовка и другую для анализа данных.И я продолжаю получать значение «Нет» в конце каждой распечатки функции.Я не знаю, почему это происходит.

Любая помощь или предложения будут высоко оценены.Спасибо.

XML-файл:

<datafile>
    <header>
        <name>header_name</name>
    </header>
    <game name="game_name">
    </game>
</datafile>

Код:

import xml.etree.ElementTree as ET

def parse_header(file):
    tree = ET.parse(file)
    root = tree.getroot()
    for header in root.iter('header'):
        for name in header.iter('name'):
            if name.text is not None:
                print(name.text)

def parse_games(file):
    tree = ET.parse(file)
    root = tree.getroot()
    for game in root.iter('game'):
        for key, value in game.items():
            if value is not None:
                print(value)

print(parse_header('test.dat'))
print(parse_games('test.dat'))

Вывод:

header_name
None
game_name
None

1 Ответ

0 голосов
/ 23 февраля 2019

Функции, которые не имеют явного возвращаемого значения, возвращают None в Python, поэтому оба ваших print вызова в основной программе в итоге печатают None s, поскольку функции, которые они печатают, возвращают None s неявно.

Изменение:

print(parse_header('test.dat'))
print(parse_games('test.dat'))

на:

parse_header('test.dat')
parse_games('test.dat')
...