본문 바로가기
파이썬

파이썬 Python : 튜플 인덱스는 mysql 테이블에서 선택할 때 str이 아닌 정수 여야합니다.

by º기록 2021. 2. 7.
반응형

테이블에서 모든 ID를 선택하고 목록에 추가하고 해당 목록을 반환하는 다음 방법이 있습니다. 하지만이 코드를 실행하면 튜플 인덱스가 정수 여야합니다 ... 오류가 발생합니다. 내 방법과 함께 오류 및 인쇄물을 첨부했습니다.

def questionIds(con):
    print 'getting all the question ids'
    cur = con.cursor()
    qIds = []
    getQuestionId = "SELECT question_id from questions_new"
    try:
        cur.execute(getQuestionId)
        for row in cur.fetchall():
            print 'printing row'
            print row
            qIds.append(str(row['question_id']))
    except Exception, e:
        traceback.print_exc()
    return qIds

내 방법이 수행하는 인쇄 :

Database version : 5.5.10 
getting all the question ids
printing row
(u'20090225230048AAnhStI',)
Traceback (most recent call last):
  File "YahooAnswerScraper.py", line 76, in questionIds
    qIds.append(str(row['question_id'][0]))
TypeError: tuple indices must be integers, not str

 

해결 방법

 

파이썬 표준 mysql 라이브러리는 cursor.execute에서 튜플을 반환합니다. question_id 필드를 얻으려면 row [ 'question_id'] 가 아니라 row [0] 을 사용합니다. 필드는 select 문에 나타나는 것과 동일한 순서로 나옵니다.

여러 필드를 추출하는 적절한 방법은 다음과 같습니다.

for row in cursor.execute("select question_id, foo, bar from questions"):
    question_id, foo, bar = row

 

참조 페이지 https://stackoverflow.com/questions/12325234

 

 

반응형

댓글