Помогите решить ошибку Python: invalid literal for int() with base 10: ''
Есть такой код:
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 содержится пустое число или дробное, поэтому выдает ошибку. Как можно исправить? Проведите пожалуйста пример.
Источник: Stack Overflow на русском