TypeError: объект 'NoneType' не подходит для xmltodict - PullRequest
0 голосов
/ 14 марта 2019
for i in range(1,3200):
    input_file = 'ProductGet'
    fp = open(input_file+str(i)+'.xml' ,encoding='utf8')
    tree = etree.parse(fp)
    ProductID = tree.xpath('/Responses/Response/Data/Product/ProductID/text()')
    with open(input_file+str(i)+'.xml', errors='ignore') as fd:
        doc = xmltodict.parse(fd.read())
    berrak = doc['Responses']['Response']['Data']['Product']
    for ii in range(0,len(ProductID)):
        print(berrak[ii]['Variations']['Variation']['VariationIsLive'])

У меня есть несколько наборов файлов .xml, и мой скрипт открывает их все с 1 по 3200. Но когда он анализирует его случайно, он показывает NoneType сообщение для berrak[ii]['Variations']['Variation']['VariationIsLive'] этой части.Я проверил этот файл, все выглядит хорошо.мой вопрос, как я могу преобразовать в этот NoneType элементы в строки?

1 Ответ

0 голосов
/ 14 марта 2019

Вы должны защитить свой код от этой проблемы

for ii in range(0,len(ProductID)):
    variations = berrak[ii].get('Variations')
    if variations:
        variation = variations.get(''Variation'')
        if variation:
            is_live = variation.get('VariationIsLive')
            if is_live is not None:
                print(is_live) 
...