2017-12-17 3 views
0
나는 데이터가

attachmet .CSV 이메일로 데이터를 보내기의 내가 메시지를 이메일로 .CSV 파일을 첨부 파일로 데이터를 보낼 필요가파이썬

data = [ 
    ['header_1', 'header_2'], 
    ['row_1_!', 'row_1_2'], 
    ['row_2_1', 'row_2_2'], 
] 

가정 해 봅시다. .csv로 저장할 수없고 기존 csv를 첨부 할 수 없습니다. - 응용 프로그램은 Googpe App Engine 샌드 박스 환경에서 작동합니다. 그래서 아무 파일도 저장 될 수 없다.

이메일 첨부 파일은 파일 이름과 base64로 인코딩 된 파일로 구성됩니다.

나는 다음과 같은 방법으로 부착 몸을 만들려고 :

import csv 
if sys.version_info >= (3, 0): 
    from io import StringIO 
else: 
    from StringIO import StringIO 
in_memory_data = StringIO() 
csv.writer(inmemory_data).writerows(data) 
encoded = base64.b64encode(inmemory_data.getvalue()) 

그러나 결과에 나는 이메일 유효하지 않은 파일에 의해 2 열과 3 행,하지만 파일에서 하나의 문자열 (사진 참조)받은 . csv_screen

내가 뭘 잘못하고있어?

답변

0

나는 실수를 발견했습니다.

encoded = bytearray(inmemory_data.getvalue(), "utf-8") 

그런 식으로 잘 작동 : 나는 대신 인코딩 에 base64로 BYTEARRAY 로 변환되어 있어야합니다.