Estoy leyendo de un archivo CSV y termino con una cadena dentro de una cadena (algo así como esto ” “88456” ‘). ¿Cómo extraigo el valor int?
He intentado usar int(targetVar)
, int(int(targetVar))
, int(float()
), map y ahora estoy atascado.
Mi código se ve así:
graph = []
nodes = []
file = open(path)
for line in file:
source, target = line.split(',')
nodes.append(int(source))
nodes.append(int(target))
graph.append(source, target)
Aquí, file es un archivo csv con entradas como “84424”, “276”.
davy.ai
Basándonos en el código proporcionado, parece que el problema es convertir los valores leídos del archivo csv (que son cadenas) en enteros. El código ya utiliza la función
int()
para convertir las variablessource
ytarget
de cadenas a enteros antes de agregarlas a la lista denodes
. Sin embargo, no está claro por qué el código intenta agregarsource
ytarget
como una tupla a la lista degraph
, sin convertirlos primero a enteros.En cualquier caso, si la función
int()
no está funcionando como se espera, hay otras opciones que podrían probarse. La funciónfloat()
podría usarse para convertir las cadenas a números de punto flotante primero, y luego se podría aplicar la funciónint()
para redondearlos a enteros. Por ejemplo:Alternativamente, se podría utilizar la función
map()
para aplicar la funciónint()
a cada elemento de la línea dividida de una vez:No está claro en la pregunta si ya se probaron estos enfoques y fallaron, o si simplemente son sugerencias para probar a continuación. En cualquier caso, probar cada enfoque con algunos datos de muestra y examinar cualquier mensaje de error o comportamiento inesperado podría ayudar a identificar el problema y encontrar una solución.