Home >Backend Development >Python Tutorial >Why Am I Getting 'TypeError: String Indices Must Be Integers' When Converting JSON to CSV in Python?
In your Python code to parse JSON and convert it to CSV, you encounter the "TypeError: string indices must be integers" error. To address this, let's delve into the underlying issue and provide a solution.
The "TypeError: string indices must be integers" error indicates that you are attempting to access a string-type variable using an index. In your case, you are trying to access the values of a JSON object using indices.
For instance, in your code snippet:
csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])
You are trying to access the values of various fields in the JSON object by using index names, such as "gravatar_id", "position", and "number". However, these fields are not indices but keys of a dictionary-like object.
To resolve this error and correctly access the JSON object's field values, you need to use dictionary access syntax. Here's the corrected code using the JSON.loads() function:
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')])
This code uses the get() method to retrieve the values of the specified fields from the dictionary-like JSON object.
By replacing the incorrect string indexing with the proper dictionary access syntax, you can successfully parse the JSON file and extract the desired values into the CSV file, without encountering the "string indices must be integers" error.
The above is the detailed content of Why Am I Getting 'TypeError: String Indices Must Be Integers' When Converting JSON to CSV in Python?. For more information, please follow other related articles on the PHP Chinese website!