Не извлекается элемент списка Python

при сохранении результатов в json единственный элемент списка, переменной amount отображается в квадратных скобках, во так: "amount": "['130']", вместо: "130"

Вот мой код:

name = soup.select_one('.ad-detail-title').text.strip()
amount = soup.select_one('.pagAnuPrecioTexto')
about = soup.select_one('.pagAnuCuerpoAnu')
ref = soup.select_one('.pillDiv pillRef')
location = soup.select_one('.pagAnuCatLoc').text.strip()
created = soup.select_one('.pagAnuStatsCreated').text.strip()

amount = regex.findall('(\d+)', str(amount))

item = {
    'name': name,
    'amount': str(amount),
    'about': about,
    'ref': str(ref),
    'location': str(location),
    'created': str(created),
    'url': url,
}
data.append(item)

return data

При попытке указания позиции в списке [0] возвращается ошибка: "list index out of range python" В чём тут дело?


Ответы (1 шт):

Автор решения: gil9red

У вас в amount ниже будет список строк, найденных в amount:

amount = regex.findall('(\d+)', str(amount))

item = {
    'name': name,
    'amount': str(amount),
    ...

И при вашей попытке оставить первое значение из списка через str(amount[0]) привело к ошибке, т.к. встретилось значение amount, в котором цифр не было, поэтому вам нужно добавить проверку, например:

...
item = {
    'name': name,
    'amount': amount[0] if amount else "0",
    ...
→ Ссылка