Foros Python

Versión completa: AttributeError: 'int' object has no attribute 'upper'
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Tengo hecho un código para hacer scraping que funciona bien si el imputed_data es alfanumérico. Cuando únicamente es numérico me lanza este error << AttributeError: 'int' object has no attribute 'upper' >>

Entiendo que al ser numérico no encuentra como hacer mayúsculas pero no se como cambiar esa parte. El código completo es es siguiente:


# Import necessary modules
from bs4 import BeautifulSoup
import requests
import pandas


inputed_data = pandas.read_excel("Datos prueba.xlsx")

scraped_data = []
total = len(inputed_data['Internal Key'])
print(f"Found {total} companies to scrape. Starting to scrap.")
n = 1
for each in inputed_data['Internal Key']:
res = requests.get(f"https://www.stoxx.com/component-details?key={each.upper()}")
soup = BeautifulSoup(res.content, 'lxml')
subsector = soup.select(".last td")[1].getText().strip()
scraped_data.append(subsector)
print(f"Got {n} companies data out of {total} companies")
n += 1

inputed_data['Subsector'] = scraped_data
inputed_data.to_excel("Datos raspados.xlsx", index=False)
print("Finished scraping! Saved the data in \"Datos raspados.xlsx\" file")


¿Puede alguien ayudarme? Gracias.
Hola, bienvenido.

Podés convertir el dato a una cadena antes de llamar a upper():

Código:
res = requests.get(f"https://www.stoxx.com/component-details?key={str(each).upper()}")

Saludos