Помогите решить ошибку Python: invalid literal for int() with base 10: ''

Рейтинг: 0Ответов: 0Опубликовано: 07.07.2023

Есть такой код:

from lxml import etree
import json

dict_out = []
temp = {}

with open('FM23.xml') as f:
    s = f.read()

root = etree.XML(s)
res = ''
for el in root.xpath('//record/unsigned [@id="property"]'):
    if el.get('value') == '1348695145':
        t = el.find('..//large')
        z1 = t.values()[1]
        z1_out = round(int(z1)/2**32)
        for t1 in el.xpath('..//null [@id="new_value"]//..//record [@id="odvl"]'):
            if len(t1):
                if t1[0].get('value') == '1868854892':
                    z2 = t1[1].get('value')
                    temp['player'] = z1_out
                    temp['club'] = int(z2)
                    dict_out.append(temp)
                    temp = {}

with open('done.json', 'w') as f:
    json.dump(dict_out, f, indent=2, ensure_ascii=False)

Выдает такую ошибку:

Traceback (most recent call last):
  File "main.py", line 24, in <module>
    temp['club'] = int(z2)
                   ^^^^^^^
ValueError: invalid literal for int() with base 10: ''

Этот скрипт вытаскивает нужные числа из файла xml, конвертирует их и записывает в json. Я так понял где-то в файле xml содержится пустое число или дробное, поэтому выдает ошибку. Как можно исправить? Проведите пожалуйста пример.

Ответы

Ответов пока нет.