Al intentar manipular datos de un archivo JSON en un formato CSV comprensible, puede encontrar el "TypeError: Los índices de cadena deben ser números enteros". Este error surge al acceder a campos de una cadena como si fuera un diccionario. Exploremos la solución.
Para comprender el error, es importante tener en cuenta que las cadenas en Python no se pueden indexar como los diccionarios. En los diccionarios, se puede acceder a las claves como cadenas, por ejemplo, diccionario["clave"]. Por el contrario, el acceso a los campos de una cadena debe realizarse utilizando índices enteros, como se muestra en el siguiente ejemplo:
mystring = "helloworld" print(mystring[0]) # Outputs 'h', as '0' refers to the first character
En su código, está intentando acceder a los campos del elemento variable, que es de tipo cadena:
csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])
Para resolver el problema, convierta la variable item en un diccionario antes de acceder a sus campos:
csv_file.writerow([item.get("gravatar_id"), item.get("position"), item.get("number")])
Alternativamente, puede usar la función loads() del módulo json para convertir la cadena del elemento directamente a un diccionario:
item_dict = json.loads(item) csv_file.writerow([item_dict["gravatar_id"], item_dict["position"], item_dict["number")])
Estas modificaciones garantizarán que acceda a los campos utilizando índices enteros, resolviendo el "TypeError: los índices de cadena deben ser números enteros".
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3