首頁 >後端開發 >Python教學 >為什麼在 Python 中將 JSON 轉換為 CSV 時會出現「TypeError: String Indices Must Be Integers」?

為什麼在 Python 中將 JSON 轉換為 CSV 時會出現「TypeError: String Indices Must Be Integers」?

Barbara Streisand
Barbara Streisand原創
2024-12-05 01:50:10181瀏覽

Why Am I Getting

疑難排解:JSON 到CSV 轉換中的「TypeError: String Indices Must Be Integers」

在您的Python 程式碼中解析Python 程式碼中解析JSON 和將其轉換為CSV 時,您會遇到「TypeError:字串索引必須是整數」錯誤。為了解決這個問題,讓我們深入研究根本問題並提供解決方案。

「TypeError:字串索引必須是整數」錯誤表示您正在嘗試使用索引存取字串類型變數。在您的情況下,您正在嘗試使用索引存取 JSON 物件的值。

例如,在您的程式碼片段中:

csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])

您正在嘗試存取各種值JSON 物件中的字段,使用索引名稱,例如「gravatar_id」、「position」和“number”。但是,這些欄位不是索引,而是類似字典的物件的鍵。

要解決此錯誤並正確存取 JSON 物件的欄位值,您需要使用字典存取語法。以下是使用 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')])

此程式碼使用 get() 方法從類似字典的 JSON 物件中檢索指定欄位的值。

透過用正確的字典存取語法取代不正確的字串索引,您可以成功解析JSON 檔案並將所需的值提取到CSV 檔案中,而不會遇到「字串索引必須是整數”的情況錯誤。

以上是為什麼在 Python 中將 JSON 轉換為 CSV 時會出現「TypeError: String Indices Must Be Integers」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn