>백엔드 개발 >파이썬 튜토리얼 >Python에서 JSON을 CSV로 변환할 때 'TypeError: 문자열 인덱스는 정수여야 합니다'라는 메시지가 나타나는 이유는 무엇입니까?

Python에서 JSON을 CSV로 변환할 때 'TypeError: 문자열 인덱스는 정수여야 합니다'라는 메시지가 나타나는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-05 01:50:10187검색

Why Am I Getting

문제 해결: JSON에서 CSV로 변환의 "TypeError: 문자열 인덱스는 정수여야 합니다"

Python 코드에서 JSON을 구문 분석하고 이를 CSV로 변환하면 "TypeError: 문자열 인덱스는 정수여야 합니다." 오류가 발생합니다. 이 문제를 해결하려면 근본적인 문제를 조사하고 해결책을 제시해 보겠습니다.

"TypeError: 문자열 인덱스는 정수여야 합니다." 오류는 인덱스를 사용하여 문자열 유형 변수에 액세스하려고 함을 나타냅니다. 귀하의 경우에는 인덱스를 사용하여 JSON 객체의 값에 액세스하려고 합니다.

예를 들어 코드 조각에서 다음과 같습니다.

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

다양한 값에 액세스하려고 합니다. "gravatar_id", "position" 및 "number"와 같은 인덱스 이름을 사용하여 JSON 개체의 필드. 그러나 이러한 필드는 인덱스가 아니라 사전형 객체의 키입니다.

이 오류를 해결하고 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: 문자열 인덱스는 정수여야 합니다'라는 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.