크롤링한 데이터를 mysql에 insert할 때 만난 오류
OperationalError: (pymysql.err.OperationalError) (1054, "Unknown column '공고기관' in 'field list'")
[SQL: INSERT INTO rndrss2 (`공고기관`, `제목`, `공고일`, `링크`) VALUES (%(공고기관)s, %(제목)s, %(공고일)s, %(링크)s)] [parameters: ({'공고기관': '공고이름', '공고일': '2020.09.28', '링크': 'https://www.'})
다음과 같은 오류가 생긴 데에는 두가지 이유가 있다.
1. colum이 없다.
2. 사용자가 문자열로 준 데이터가 쌍따옴표로 둘러싸여 있지 않아서 생기는 오류로
mysql은 쌍다옴표로 둘러싸여있지 않으면 문자열로 인식하지 않는다.
config = create_engine('mysql+pymysql://'+user+':'+password+'@'+host+':'+port+'/'+database)
df_sql = df_pd.to_sql('tabname', con=config, if_exists='append', index = False)
print(df_sql)
cursor.executemany("insert into tabname (company,title,date,link) values(%s,%s,%s,%s)",val_insert)
내가 만든 코드에선 colum은 존재하기때문에
문자열로 인식하지 못해서 insert가 되지 않았음을 알 수 있다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
[python error] not enough arguments for format string (0) | 2020.09.28 |
---|---|
[python error] execute() takes from 2 to 3 positional arguments but 6 were given (0) | 2020.09.28 |
[python] not all arguments converted during string formatting (0) | 2020.09.28 |
(오류) (2003, "Can't connect to MySQL server on 'root' ([Errno 11001] getaddrinfo failed)") (0) | 2020.09.28 |
(크롤링) 파이썬 mariadb 연동하기 (0) | 2020.09.25 |