Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Saya Mendapat 'TypeError: Indeks Rentetan Mesti Integer' Apabila Menukar JSON kepada CSV dalam Python?

Mengapa Saya Mendapat 'TypeError: Indeks Rentetan Mesti Integer' Apabila Menukar JSON kepada CSV dalam Python?

Barbara Streisand
Lepaskan: 2024-12-05 01:50:10
asal
182 orang telah melayarinya

Why Am I Getting

Penyelesaian masalah: "TypeError: String Indices Must Be Integers" dalam JSON to CSV Conversion

Dalam kod Python anda untuk menghuraikan JSON dan menukarnya kepada CSV, anda menghadapi "TypeError: indeks rentetan mesti menjadi ralat integer". Untuk menangani perkara ini, mari kita mendalami isu asas dan menyediakan penyelesaian.

Ralat "TypeError: indeks rentetan mestilah integer" menunjukkan bahawa anda sedang cuba mengakses pembolehubah jenis rentetan menggunakan indeks. Dalam kes anda, anda cuba mengakses nilai objek JSON menggunakan indeks.

Sebagai contoh, dalam coretan kod anda:

csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])
Salin selepas log masuk

Anda cuba mengakses nilai pelbagai medan dalam objek JSON dengan menggunakan nama indeks, seperti "gravatar_id", "position", dan "number". Walau bagaimanapun, medan ini bukan indeks tetapi kunci objek seperti kamus.

Untuk menyelesaikan ralat ini dan mengakses nilai medan objek JSON dengan betul, anda perlu menggunakan sintaks akses kamus. Berikut ialah kod yang diperbetulkan menggunakan fungsi JSON.loads():

import json
import csv

with open('issues.json', 'r') as f:
    data = json.load(f)

with open('issues.csv', 'wb+') as f:
    csv_file = csv.writer(f)
    csv_file.writerow(["gravatar_id", "position", "number"])

    for item in data['issues']:
        csv_file.writerow([item.get('gravatar_id'), item.get('position'), item.get('number')])
Salin selepas log masuk

Kod ini menggunakan kaedah get() untuk mendapatkan semula nilai medan yang ditentukan daripada objek JSON seperti kamus.

Dengan menggantikan pengindeksan rentetan yang salah dengan sintaks akses kamus yang betul, anda boleh berjaya menghuraikan fail JSON dan mengekstrak nilai yang dikehendaki ke dalam Fail CSV, tanpa menemui ralat "indeks rentetan mestilah integer".

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'TypeError: Indeks Rentetan Mesti Integer' Apabila Menukar JSON kepada CSV dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan