일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 보안
- I'm Sorry
- 자바스크립트
- 알고리즘
- 컴퓨터공학
- 웹개발
- 데이터분석
- 사이버보안
- 파이썬
- 딥러닝
- 빅데이터
- 2
- 인공지능
- 데이터구조
- 소프트웨어공학
- 자료구조
- 네트워크보안
- 프로그래밍
- 컴퓨터비전
- 컴퓨터과학
- 프로그래밍언어
- 코딩
- 데이터과학
- 네트워크
- 데이터베이스
- Yes
- 소프트웨어
- 버전관리
- 머신러닝
- 클라우드컴퓨팅
- Today
- Total
스택큐힙리스트
왜 "TypeError: string indices must be integers"가 보이나요? 본문
저는 파이썬 배우기와 함께 GitHub 이슈들을 읽기 쉬운 형태로 만들고자 노력하고 있습니다. How can I convert JSON to CSV? 에서 제공한 조언을 사용하여 다음과 같은 결과물을 도출했습니다:
import json
import csv
f = open('issues.json')
data = json.load(f)
f.close()
f = open(issues.csv, wb+)
csv_file = csv.writer(f)
csv_file.writerow([gravatar_id, position, number, votes, created_at, comments, body, title, updated_at, html_url, user, labels, state])
for item in data:
csv_file.writerow([item[gravatar_id], item[position], item[number], item[votes], item[created_at], item[comments], item[body], item[title], item[updated_at], item[html_url], item[user], item[labels], item[state]])
issues.json은 내 GitHub 이슈를 포함한 JSON 파일입니다. 그 파일을 실행하려고 하면, 다음과 같은 오류가 나타납니다.
File foo.py, line 14, in
csv_file.writerow([item[gravatar_id], item[position], item[number], item[votes], item[created_at], item[comments], item[body], item[title], item[updated_at], item[html_url], item[user], item[labels], item[state]])
TypeError: string indices must be integers
여기서 뭐가 빠졌을까요? 문자열 인덱스는 무엇인가요? 이것을 작동하게 만드는 게 어렵겠지만, 일단은 그냥 작동되면 정말 좋겠습니다!
애정합니다 (I love you), it conveys a completely different message.
for item in data:
print item
내가 이해한 것은 문제인데, 더 기본적인 것을 잘못하고 있나봐요. 이것은 내 JSON 컨텐츠 일부입니다:
{issues: [{gravatar_id: 44230311a3dcd684b6c5f81bf2ec9f60, position: 2.0, number: 263, votes: 0, created_at: 2010/09/17 16:06:50 -0700, comments: 11, body: Add missing paging (Older>>) links...
data를 출력하면 매우 이상하게 꼬이는 것처럼 보입니다.
{u'issues': [{u'body': u'Add missing paging (Older>>) lin...
답변 1
변수 item은 문자열입니다. 인덱스는 다음과 같습니다:
>>> mystring = 'helloworld'
>>> print mystring[0]
'h'
위의 예제는 문자열의 0 인덱스를 사용하여 첫 번째 문자를 참조합니다.
문자열은 문자 딕셔너리처럼 문자 인덱스를 가질 수 없습니다. 그래서 이렇게 사용할 수 없습니다.
>>> mystring = 'helloworld'
>>> print mystring['stringindex']
TypeError: string indices must be integers
답변 2
TypeError: string indices must be integers는 파이썬에서 자주 발생하는 오류 중 하나입니다. 이 오류는 보통 문자열과 같은 객체를 처리할 때 발생합니다. 이 오류는 일반적으로 문자열의 인덱스에 정수가 아닌 값이 포함되어 있을 때 발생합니다.이 오류는 문자열을 다룰 때 매우 일반적으로 발생합니다. 실제로 문자열은 매우 중요한 데이터 타입으로 사용되고 있으며, 이 오류는 이러한 데이터를 처리하는 데 많은 도움이 됩니다.
오류의 원인을 해결하는 방법은 매우 간단합니다. 일반적으로 오류 메시지에서 실제 인덱스 위치가 나와 있으며, 이 위치에서 정수값을 사용하도록 변경하면 해결됩니다.
또한, 이 오류가 발생하는 경우 일반적으로 문자열 데이터의 타입을 확인하는 것이 좋습니다. 데이터 타입을 잘못 지정한 경우 이러한 오류가 발생할 가능성이 높습니다.
따라서, 이러한 오류를 피하려면 프로그래밍을 할 때 문자열 인덱스에는 정수값을 사용해야 하며, 데이터 타입을 정확하게 지정해야 합니다. 이를 기반으로 코드를 작성하면 유지보수와 디버깅이 더 쉬워지며, 더 나은 사용자 경험을 제공할 수 있습니다.