Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membetulkan Ralat 'TypeError: Senarai Indeks Mesti Integer atau Slices, Bukan Str' dalam Python?

Bagaimana untuk Membetulkan Ralat 'TypeError: Senarai Indeks Mesti Integer atau Slices, Bukan Str' dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-11-19 06:24:031080semak imbas

How to Fix the

TypeError: Senarai Indeks Mesti Integer

Ralat "TypeError: senarai indeks mestilah integer atau hirisan, bukan str" berlaku apabila anda cuba mengakses item senarai menggunakan indeks rentetan dan bukannya integer atau kepingan. Ralat ini adalah perkara biasa apabila menggabungkan dua senarai ke dalam tatasusunan tunggal untuk eksport CSV.

Untuk mengelakkan ralat ini, ikut langkah berikut:

  1. Tukar panjang senarai kedua (array_dates) kepada integer, kerana indeks mesti sentiasa integer.

    array_length = len(array_dates)
  2. Lelar melalui integer array_length baharu menggunakan fungsi julat, yang secara automatik menambah nilai lelaran.

    for i in range(array_length):  # Use `xrange` for Python 2.
  3. Alih keluar baris i = 1 daripada gelung anda, kerana ia tidak lagi diperlukan.

Anda juga boleh menyelaraskan kod anda dengan menggunakan zip untuk menggabungkan dua senarai, kerana ia mempunyai panjang yang sama:

result_array = zip(array_dates, array_urls)
csv_file.writerows(result_array)

Berikut ialah kod yang diperbetulkan:

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)

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'TypeError: Senarai Indeks Mesti Integer atau Slices, Bukan Str' dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn