Foros Python
AttributeError: 'int' object has no attribute 'upper' - Versión para impresión

+- Foros Python (https://foro.recursospython.com)
+-- Foro: Desarrollo (https://foro.recursospython.com/forumdisplay.php?fid=1)
+--- Foro: General (https://foro.recursospython.com/forumdisplay.php?fid=9)
+--- Tema: AttributeError: 'int' object has no attribute 'upper' (/showthread.php?tid=1032)



AttributeError: 'int' object has no attribute 'upper' - Mikel - 23-09-2021

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.


RE: AttributeError: 'int' object has no attribute 'upper' - Francisco - 23-09-2021

Hola, bienvenido.

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

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


Saludos