일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- java
- 백준
- 자바
- 주식 분석
- boj
- 급등 이유
- 손에 잡히는 경제
- 손경제 요약
- 손경제
- 프로그래머스
- 테마주
- 파이썬
- 주식 상한가
- Programmers
- 상한가
- 코딩테스트
- 이진우의 손에 잡히는 경제
- 상한가 분석
- 경제뉴스 요약
- 이진우
- 급등주 분석
- 급등주
- Python
- 상한가 이유
- 경제
- 코테
- 경제뉴스
- 주식
- 알고리즘
- 손에 잡히는 경제 요약
- Today
- Total
Completion over Perfection
Python(파이썬) 중괄호('{}')가 이미 포함된 문자열 포맷팅 방법 본문
Python(파이썬) 중괄호('{}')가 이미 포함된 문자열 포맷팅 방법
오늘은 중괄호{} 가 이미 따옴표'' 안에 들어있을 때,
문자열을 변수로 넣어야 할 경우 어떻게 넣어야하는지에 대해서 알려드리겠습니다.
많은 분들이 아시다시피 파이썬에서 문자열 안에 문자변수를 넣는 방법은 세 가지 방법이 있죠.
① % operation : '%s' % (버전 상관없이 지원)
② str.format : '{변수}'.format() (Python 3 ↑ 지원)
③ f-string : f'{변수}' (Python 3.6 ↑ 지원)
저는 개인적으로 ②번 아니면 ③번을 자주 사용하는데요,
이 방법이 먹히지 않는 경우가 생겼습니다.
보통의 경우에는 다음과 같이 따옴표가 하나만 들어가고 그 안에 변수를 넣으면 됐죠.
[파이썬 코드] - ②번 방식을 사용할 경우
name = 'John Wick'
data = "my name is {}".format(name)
print(data)
[결과]
my name is John Wick
하지만 따옴표 안에 중괄호가 이미 들어가 있고,
그 안에서 문자열 포맷팅을 해야하는 경우에는 위의 방식대로 할 경우 정상적으로 결과가 나오지 않습니다.
예시를 들어 보겠습니다.
②번 방법을 사용하는 경우
[파이썬 코드]
name = 'John Wick'
data = "{'my name is {}'}".format(name)
print(data)
[결과]
line 3, in <module>
data = "{'my name is {}'}".format(name)
ValueError: unexpected '{' in field name
②번 방법을 사용해 보았는데 에러가 뜹니다.
그럼 ③번 방법을 사용해 보겠습니다.
[파이썬 코드]
name = 'John Wick'
data = f"{'my name is {name}'}"
print(data)
[결과]
my name is {name}
에러는 발생하지 않지만, 문자열 변수가 제대로 들어가지 않고, 변수명만 출력이 되었네요.
원하는 결과가 아니죠.
결론은 ①번 방법을 사용해야 정상적으로 출력이 됩니다.
[파이썬 코드]
name = 'John Wick'
data = "{my name is %s}" % 'John Wick'
print(data)
[결과]
{my name is John Wick}
다른 방법들을 찾아보려고 시도해봤으나,
그냥 ①번 방법을 사용하는게 제일 속편했습니다.
API 호출을 할 때, JSON 데이터를 저런식으로 따옴표 중괄호 콤보로 request 해야하는 경우,
그 안에서 문자 변수(날짜 등)를 바꿔줘야 할 때 유용하게 사용했었습니다.
다른분들도 도움이 되시길 바래요~
'파이썬 (Python)' 카테고리의 다른 글
파이썬 - 딕셔너리 안의 리스트에서 특정 키 값만 가져오기 (4) | 2020.06.10 |
---|---|
파이썬(Python)으로 로또 매일 1개씩 자동구매하기 (1탄 - 기획하기) (2) | 2020.06.02 |
파이썬(Python) Selenium webdriver가 실행되지 않을 때 (8) | 2020.05.12 |
Python(파이썬)으로 1to50 게임 2초대 기록하기 (2) (0) | 2020.05.04 |
Python(파이썬)으로 1to50 게임 2초대 기록하기 (1) (0) | 2020.04.27 |