AWS Python Lambda 함수-UTF-8로 인코딩 된 CSV를 S3에 작성

Lambda 함수 내부에서 S3 버킷에 CSV 파일을 쓰려고합니다. 특수 문자를 캡처 할 수 없다는 점을 제외하면 모든 것이 정상입니다. 기본적으로 파일이 UTF-8로 인코딩되어야합니다. pandas 또는 unicodecsv는 Lambda의 환경에 내장되어 있지 않으므로 사용하고 싶지 않습니다.

다음은 현재 Lambda 함수입니다.

import boto3
import csv
import io

def lambda_handler(event, context):
    s3 = boto3.resource('s3')
    bucket = s3.Bucket("my-bucket-name-goes-here")
    fn = "sample_csv_lambda.csv"
    write_csv(fn, bucket)

def write_csv(target_filename, bucket):
    buff = io.StringIO()
    writer = csv.writer(buff, dialect="excel", delimiter=",")
    writer.writerow([f"header{i}" for i in range(1, 6)])
    writer.writerow([1, 2, 3, 4, 5])
    writer.writerow(["u", "b", "w", "d", "ş"])
    writer.writerow(["n", "p", "m", "q", "ğ"])
    buff2 = io.BytesIO(buff.getvalue().encode(encoding="UTF-8"))
    print(buff2.getvalue().decode("utf-8"))
    bucket.upload_fileobj(buff2, target_filename)

마지막에서 두 번째 줄의 인쇄 값은 의도 한대로 특수 문자를 출력하지만 CSV 파일을 다운로드하여 열면 여전히 UTF-8이 아닙니다.

추신 : 다른 질문 / 답변에서 제안한대로 "/ tmp"폴더에 파일을 임시로 저장할 필요가 없기 때문에 현재 코드 형식이 마음에 듭니다. 또한 내 Lambda 환경에 pandas / unicodecsv를 패키징하고 업로드 할 필요가 없습니다. 나 같은 초보자에게는 너무 복잡합니다. 대답 할 때 이것을 명심하십시오.

파나지오티스 카나 보스

짧은 대답

파일이 BOM없이 이미 UTF8입니다. BOM을 내보내려면 인코딩 할 때 utf-8-sig대신 사용하십시오 utf-8.

긴 답변

댓글에서 파일을 두 번 클릭하여 Excel에서 CSV 파일을 열려고하는 것 같습니다. 그렇게하면 Excel은 기본 설정을 사용하여 파일 내용을 가져옵니다 . BOM이있는 경우 Excel은 BOM에 지정된 인코딩을 사용하여 파일을로드합니다. 그렇지 않으면 어떤 인코딩이 사용되었는지 추측 할 방법이 없으므로 Excel은 사용자의 로캘 설정을 사용하여 데이터를 가져옵니다.

데이터 메뉴를 사용하여 데이터를 가져온 경우 Excel에서 파일 미리보기를 표시하고 인코딩, 구분 기호 등과 같은 설정을 수정할 수 있습니다.

Excel에서 해당 파일을 사용하려면 openpyxl실제 xlsx파일 을 만드는 것과 같은 라이브러리를 사용하는 것이 좋습니다 . An xlsx은 잘 정의 된 XML 파일을 포함하는 ZIP 패키지입니다. xlsx파일은 일반적으로 해당 CSV 파일보다 훨씬 작은 숫자와 날짜가 더 현지화 문제가 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python 3-utf-8 인코딩 csv를 pandas로 읽기

분류에서Dev

Python 3에서 문자를 utf-8 16 진수로 인코딩

분류에서Dev

페이지 제목에 UTF-8로 인코딩 된 문자를 사용할 수 있습니까?

분류에서Dev

Latin1로 인코딩 된 텍스트 필드를 UTF8로 변환하는 MySQL 함수

분류에서Dev

csv를 UTF-8로 인코딩 할 수 없습니다.

분류에서Dev

boto3가 포함 된 AWS Lambda Python S3, 오류가 발생하는 이유를 알 수 없음

분류에서Dev

16 진수로 인코딩 된 문자열에서 UTF-8 문자열로 디코딩하는 방법

분류에서Dev

pandas에서 latin-1 인코딩으로 mysql로 utf8 인코딩 문자를 보낼 때 잘못된 인코딩 문자

분류에서Dev

인코딩 된 nsdata utf8 json, ios에서 강조된 문자 포함

분류에서Dev

인코딩 된 html 엔티티를 utf-8로 변환

분류에서Dev

Java UTF-8 인코딩이 잘못된 출력을 생성 함

분류에서Dev

AWS Lambda 함수를 JavaScript로 작성할 수 있습니까?

분류에서Dev

Spark Python지도 함수 : UTF-8 인코딩 오류

분류에서Dev

히라가나를 작성하는 동안 코딩이 "#-*-coding : utf-8-*-"로 선언되었지만 Python 인코딩 오류 "비 ASCII 문자 '\ xff'..."

분류에서Dev

S3 및 Slack 통합을 사용하여 AWS Lambda 함수를 작성하는 방법

분류에서Dev

Scala 컴파일러는 UTF-8로 인코딩 된 소스 파일에서 작동합니까?

분류에서Dev

Maven 설치는 구성된 경우에도 UTF-8로 인코딩하지 않습니다.

분류에서Dev

MSVC UTF8 문자열 인코딩이 잘못된 코드 포인트를 사용함

분류에서Dev

누군가 하드 코딩 된 "AWS-cognito-identity-poolID"로 내 s3를 해킹 할 수 있습니까?

분류에서Dev

curses border 및 python3과 함께 utf-8 인코딩 사용

분류에서Dev

다른 계정에서 생성 된 Lambda 함수를 실행하도록 Amazon s3 버킷 구성

분류에서Dev

Python에서 비표준 문자를 UTF 8로 디코딩

분류에서Dev

AWS Lambda 함수를 사용하여 S3에서 .gz 파일을 디코딩하려면 어떻게해야합니까?

분류에서Dev

잘못된 UTF8 문자 jms / serializer-bundle symfony가 포함되어 있으므로 데이터를 인코딩 할 수 없습니다.

분류에서Dev

Windows-1250 및 UTF-8로 인코딩 된 텍스트 파일 작업

분류에서Dev

Windows-1250 및 UTF-8로 인코딩 된 텍스트 파일 작업

분류에서Dev

Windows-1250 및 UTF-8로 인코딩 된 텍스트 파일 작업

분류에서Dev

Excel 2010에서 VBA를 사용하여 UTF-8로 인코딩 된 CSV 파일을 쿼리하는 방법은 무엇입니까?

분류에서Dev

Java로 작성된 EBS에서 AWS Lambda 함수를 트리거 할 수 있습니까? 매개 변수를 전달할 수 있습니까? Lambda를 사용하려면 어떤 다른 서비스를 사용해야합니까?

Related 관련 기사

  1. 1

    Python 3-utf-8 인코딩 csv를 pandas로 읽기

  2. 2

    Python 3에서 문자를 utf-8 16 진수로 인코딩

  3. 3

    페이지 제목에 UTF-8로 인코딩 된 문자를 사용할 수 있습니까?

  4. 4

    Latin1로 인코딩 된 텍스트 필드를 UTF8로 변환하는 MySQL 함수

  5. 5

    csv를 UTF-8로 인코딩 할 수 없습니다.

  6. 6

    boto3가 포함 된 AWS Lambda Python S3, 오류가 발생하는 이유를 알 수 없음

  7. 7

    16 진수로 인코딩 된 문자열에서 UTF-8 문자열로 디코딩하는 방법

  8. 8

    pandas에서 latin-1 인코딩으로 mysql로 utf8 인코딩 문자를 보낼 때 잘못된 인코딩 문자

  9. 9

    인코딩 된 nsdata utf8 json, ios에서 강조된 문자 포함

  10. 10

    인코딩 된 html 엔티티를 utf-8로 변환

  11. 11

    Java UTF-8 인코딩이 잘못된 출력을 생성 함

  12. 12

    AWS Lambda 함수를 JavaScript로 작성할 수 있습니까?

  13. 13

    Spark Python지도 함수 : UTF-8 인코딩 오류

  14. 14

    히라가나를 작성하는 동안 코딩이 "#-*-coding : utf-8-*-"로 선언되었지만 Python 인코딩 오류 "비 ASCII 문자 '\ xff'..."

  15. 15

    S3 및 Slack 통합을 사용하여 AWS Lambda 함수를 작성하는 방법

  16. 16

    Scala 컴파일러는 UTF-8로 인코딩 된 소스 파일에서 작동합니까?

  17. 17

    Maven 설치는 구성된 경우에도 UTF-8로 인코딩하지 않습니다.

  18. 18

    MSVC UTF8 문자열 인코딩이 잘못된 코드 포인트를 사용함

  19. 19

    누군가 하드 코딩 된 "AWS-cognito-identity-poolID"로 내 s3를 해킹 할 수 있습니까?

  20. 20

    curses border 및 python3과 함께 utf-8 인코딩 사용

  21. 21

    다른 계정에서 생성 된 Lambda 함수를 실행하도록 Amazon s3 버킷 구성

  22. 22

    Python에서 비표준 문자를 UTF 8로 디코딩

  23. 23

    AWS Lambda 함수를 사용하여 S3에서 .gz 파일을 디코딩하려면 어떻게해야합니까?

  24. 24

    잘못된 UTF8 문자 jms / serializer-bundle symfony가 포함되어 있으므로 데이터를 인코딩 할 수 없습니다.

  25. 25

    Windows-1250 및 UTF-8로 인코딩 된 텍스트 파일 작업

  26. 26

    Windows-1250 및 UTF-8로 인코딩 된 텍스트 파일 작업

  27. 27

    Windows-1250 및 UTF-8로 인코딩 된 텍스트 파일 작업

  28. 28

    Excel 2010에서 VBA를 사용하여 UTF-8로 인코딩 된 CSV 파일을 쿼리하는 방법은 무엇입니까?

  29. 29

    Java로 작성된 EBS에서 AWS Lambda 함수를 트리거 할 수 있습니까? 매개 변수를 전달할 수 있습니까? Lambda를 사용하려면 어떤 다른 서비스를 사용해야합니까?

뜨겁다태그

보관