반응형
정말 간단한 작업처럼 보이지만 제대로하는 데 어려움이 있습니다.
내 SQL 쿼리는 다음과 같습니다.
self.link = self.db.cursor(pymysql.cursors.DictCursor);
self.link.execute("SELECT * FROM crawler_data WHERE id=%d" % id_crawl)
그리고 다음과 같이 열에 액세스하고 싶습니다.
row = self.link.fetchall()
if row["address"]:
self.address = self.filterAddress(row["address"])
"list indices must be integers, not str"
오류가 발생합니다.
row
를 인쇄하면 다음 구조가 반환됩니다.
{u'address': 'Address Value', u'domain': 'Domain Value'}
"주소"문자열에 어떻게 액세스합니까?
해결 방법
위의 경우에는 1 개의 결과 ( WHERE id = : % d
) 만 선택한 다음 address
가 설정되어 있는지 확인하려고했습니다. 이렇게하려면 self.link.fetchall ()
을 사용하는 것은 좋지 않습니다. 예를 들어 루프에서 사용할 수있는 모든 결과가 포함 된 목록을 반환하기 때문입니다.
사용할 올바른 함수는 사전 만 반환하는 self.link.fetchone ()
입니다. 사용하는 경우 :
row = self.link.fetchone()
그런 다음 사용할 수도 있습니다
print row["key"]
사용하는 경우
row = self.link.fetchall()
그런 다음 사용해야합니다
print row[0]["key"]
참조 페이지 https://stackoverflow.com/questions/23151132
반응형
'MySql' 카테고리의 다른 글
MySQL 사용자가 로그인 할 때 updated_at 열을 업데이트하는 방법은 무엇입니까? (0) | 2020.12.06 |
---|---|
MySQL에서 모든 이벤트를 삭제하는 방법 (0) | 2020.12.06 |
MySQL 저장 프로 시저로 인해 다음 쿼리에서 "명령이 동기화되지 않음"발생 (0) | 2020.12.06 |
MySQL / PHP / json_encode 부울 문자열 변환 (0) | 2020.12.06 |
MySQL PHP 및 mysqli로 테이블 데이터 표시 (0) | 2020.12.06 |
댓글