파이썬을 사용하여 전자 메일의 로컬 데이터베이스를 만들려고합니다. Imapplib을 사용하여 Imap 서버에서 전자 메일을 읽습니다. 내 목표는 "SUBJECT", "SENDER", "RECEIVER"형식으로 추출 된 전자 메일을 로컬 MySql 데이터베이스로 푸시하는 것입니다.Imaplib의 결과를 "TypeError"로 이어지는 MySQL 데이터베이스로 푸시
로컬 데이터베이스를 만드는 코드를 작성하고 특정 메시지와 함께 전자 메일을 읽습니다. 데이터베이스 "EMAIL"에 결과를 푸시하는 코드를 만드는 방법을 모르겠습니다.
EDIT : 이전 메일 문제를 해결하고 데이터베이스에 추가하는 문제를 해결할 수있었습니다. 이제 MySQL에 대한 형식 변환 오류가 붙어 있습니다. 여기 내 새로운 스크립트입니다
cur.execute("DROP TABLE IF EXISTS EMAIL")
cur.execute("CREATE TABLE email(email_to TEXT,email_from TEXT,email_header TEXT, email_msg TEXT)")
con.close()
: 여기
데이터베이스를 생성 스크립트의 일부입니다TypeError: not all arguments converted during string formatting
def parse_email(raw_email):
email_complete = email.message_from_string(raw_email)
email_to = email_complete["To"]
email_from = email_complete["From"]
email_header = email_complete.items()
email_msg = get_first_text_block(email_complete)
con = MySQLdb.connect(host="127.0.0.1", # your host, usually localhost
user="admin", # your username
passwd="pwd", # your password
db="sec_crawl") # name of the data base
con.cursor().execute("INSERT INTO email VALUES (?,?,?,?)",
(buffer(str(email_to)),buffer(str(email_from)),buffer(str(email_header)),buffer(str(email_msg))))
con.commit()
이 스크립트를 실행에, 나는 다음과 같은 오류가 발생합니다 오류에 대해 잘 모르겠습니다. 나는 일부 이전 질문
Python MySQLdb TypeError: not all arguments converted during string formatting
를 검색했다 그러나 문제는 여전히 존재. Windows 8에서 Python 2.7을 사용하고 있습니다.
Perfect. 이것은 효과가 있었다. 나는 SQLite에서 선언문과 혼동을 느낀다. –