파이썬에서의 문자열 생성 및 인코딩 처리
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 초보~중급 Python 개발자
- 문자열 처리, 인코딩/디코딩, 데이터 타입 변환에 대한 이해가 필요한 개발자
- 난이도: 중간 (인코딩 오류 처리, 파라미터 설정 등 기술적 세부 사항 포함)
핵심 요약
str()
함수는 문자열 생성에 사용되며,object
(기본값:''
또는b''
)을 인자로 받음- 인코딩 처리는
encoding
파라미터('utf-8'
,'ascii'
, 등)와 오류 처리를 위한errors
파라미터('strict'
,'ignore'
,'replace'
, 등)를 통해 제어 - 모든 데이터 타입(정수, 실수, 리스트, 딕셔너리 등)을 문자열로 변환 가능
섹션별 세부 요약
1. `str()` 함수의 기본 사용법
str()
은 빈 문자열 생성(v = str()
) 또는 다양한 데이터 타입(정수, 실수, 리스트, 딕셔너리 등)을 문자열로 변환- 예시:
```python
str(12) → "12"
str([1, 2, 3]) → "[1, 2, 3]"
str({'name': 'John'}) → "{'name': 'John'}"
```
object
파라미터는 옵셔널이며, 기본값은''
또는b''
2. 인코딩(`encoding`) 파라미터의 역할
- 문자열을 바이트 객체로 변환 시
encoding
파라미터 설정 필요 (예:'utf-8'
,'ascii'
,'big5'
) - 표준 인코딩 목록은 Python 공식 문서에서 확인 가능
- 대문자
B
를 사용한B''
도 허용
3. 오류 처리(`errors`) 파라미터의 옵션
- 인코딩 오류 처리 방식:
- 'strict'
: 오류 발생 시 UnicodeError
발생
- 'ignore'
: 변환 불가능한 문자 무시
- 'replace'
: �
로 대체
- 'xmlcharrefreplace'
: XML 형식의 참조로 대체 (예: ё
)
- 'backslashreplace'
: \uxxxx
형식으로 대체 (예: \u0451
)
- 커스텀 오류 핸들러는
codecs.register_error()
로 등록 가능
4. `str()`의 다양한 데이터 타입 변환 예시
- 정수, 실수, 복소수, 리스트, 튜플, 집합, 딕셔너리, 이터레이터, 함수 등 모든 객체를 문자열로 변환 가능
- 예시:
```python
str(1.2+3.4j) → "(1.2+3.4j)"
str(iter([1, 2, 3])) → "
str(lambda: 10) → "
```
결론
- 인코딩 오류 처리 시
'strict'
대신'ignore'
또는'replace'
를 사용해 안정성 확보 - 데이터 타입 변환 시
str()
의 유연성을 활용하여 다양한 시나리오 대응 - 커스텀 오류 핸들러는 복잡한 인코딩 요구사항에 적합한 확장성 제공