Comment corriger l'erreur « TypeError : les indices de liste doivent être des entiers ou des tranches, pas des str » en Python ?

Susan Sarandon
Libérer: 2024-11-19 06:24:03
original
1001 Les gens l'ont consulté

How to Fix the

TypeError : les indices de liste doivent être des entiers

L'erreur "TypeError : les indices de liste doivent être des entiers ou des tranches, pas des str" se produit lorsque vous tenter d'accéder à un élément de liste en utilisant un index de chaîne au lieu d'un entier ou d'une tranche. Cette erreur est courante lors de la fusion de deux listes en un seul tableau pour l'exportation CSV.

Pour éviter cette erreur, suivez ces étapes :

  1. Convertissez la longueur de la deuxième liste (array_dates) à un entier, car les indices doivent toujours être entiers.

    array_length = len(array_dates)
    Copier après la connexion
  2. Parcourez le nouvel entier array_length à l'aide de la fonction range, qui incrémente automatiquement la valeur de l'itérateur.

    for i in range(array_length):  # Use `xrange` for Python 2.
    Copier après la connexion
  3. Supprimez la ligne i = 1 de votre boucle, car ce n'est plus nécessaire.

Vous pouvez rationalisez également votre code en utilisant zip pour combiner les deux listes, puisqu'elles ont la même longueur :

result_array = zip(array_dates, array_urls)
csv_file.writerows(result_array)
Copier après la connexion

Voici le code corrigé :

def fill_csv(self, array_urls, array_dates, csv_file_path):
    array_length = len(array_dates)

    # We fill the CSV file
    with open(csv_file_path, "w") as file:
        csv_file = csv.writer(file, delimiter=';', lineterminator='\n')

        # We merge the two arrays in one
        result_array = []
        for i in range(array_length):
            result_array[i][0].append(array_urls[i])
            result_array[i][1].append(array_dates[i])

        csv_file.writerows(result_array)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal