3-я строка вашего кода переназначает версию как список, а не объект VersionsItem () больше после второй строки. Поскольку теперь это список, вы больше не можете получить к нему доступ со строками, как в этой части
version['version_code'][index] = version_code
version['version_param'][index] = version_param
version['Vslug'][index] = Vslug
index += 1
(что, как я полагаю, вы можете сделать с объектом VersionsItem (), но вы не предоставили этот код для нам анализировать).
Другая проблема, которую я заметил, заключается в том, что вы используете индекс в качестве счетчика для вашего l oop. Это не pythoni c, и вместо этого вы должны использовать перечисление вместо того, чтобы получить доступ к списку.
И последнее: если вы просто пытаетесь расширить список для хранения большего количества данных, тогда вы не Т даже нужен индекс. Вы можете просто добавить данные в конец списка, и он автоматически добавит новый элемент. Поскольку вам не нужен индекс, вам также не нужно перечислять для l oop, как я говорил ранее. Вот что реализовано
С учетом сказанного, способ заставить ваш код работать так: создать словарь как таковой:
#version = VersionsItem() # Old Code
#version = [] # Old Code
version = {} # New Code
# Instantiate all of these elements of the dictionary as being lists
version['version_code'] = [] # New Code
version['version_param'] = [] # New Code
version['Vslug'] = [] # New Code
for rRow in releaseRows:
# Enumerated for loop if needed
#for index, rRow in enumerate(releaseRows):
#rRow is a string
releasehref = rRow.xpath(".//a/@href").get()
if releasehref:
exp = releasehref.replace("/apk/","")
exp = exp.split("/")
Vslug = exp[2]
app_slug = exp[1]
# #l-speed-root-v2-0-9
expr = exp[2].replace("-release","")
expr = expr.split(app_slug+"-",1)[1]
version_code = expr.replace("-","")
version_param = expr.replace("-",".")
version['version_code'].append(version_code) # New Code
version['version_param'][index].append(version_param) # New Code
version['Vslug'][index].append(Vslug) # New Code