"Python JSON 다루기"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-</source> +</syntaxhighlight>, -<source +<syntaxhighlight ))
 
(다른 사용자 한 명의 중간 판 3개는 보이지 않습니다)
2번째 줄: 2번째 줄:
;Python JSON 다루기
;Python JSON 다루기
;파이썬 JSON 처리
;파이썬 JSON 처리
* JSON 문자열은 Python 자료형(주로 딕셔너리, 리스트)상호 변환가능하며, 형식도 매우 유사하다.
* JSON 문자열은 Python 자료형(주로 딕셔너리, 리스트)상호 변환가능하며, 형식도 매우 유사하다.
* 다만 JSON 표준은 유니코드 처리 방식이 다르므로 한글 등의 처리시 유의할 필요가 있다.
* 문자열의 경우, Python에서는 작은따옴표를 주로 사용하지만 JSON 표준에서는 큰따옴표만 허용된다.
* 또한 JSON 표준은 유니코드 처리 방식이 다르므로 한글 등의 처리시 유의할 필요가 있다.
* 아래의 실행결과는 Python 3 기준이다.<ref>Python 2는 자료형, 유니코드 처리 방식이 다르므로 취급에 주의가 필요하다.</ref>
* 아래의 실행결과는 Python 3 기준이다.<ref>Python 2는 자료형, 유니코드 처리 방식이 다르므로 취급에 주의가 필요하다.</ref>


{{소스헤더|JSON 문자열을 파이썬 딕셔너리로 변환}}
{{소스헤더|JSON 문자열을 파이썬 딕셔너리로 변환}}
<source lang='python'>
<syntaxhighlight lang='python'>
import json
import json
x = '{"name":"홍길동", "age":18}'
x = '{"name":"홍길동", "age":18}'
17번째 줄: 18번째 줄:
print(y['age'])
print(y['age'])
# 18
# 18
</source>
</syntaxhighlight>


{{소스헤더|파이썬 딕셔너리를 JSON 문자열로 변환}}
{{소스헤더|파이썬 딕셔너리를 JSON 문자열로 변환}}
<source lang='python'>
<syntaxhighlight lang='python'>
import json
import json
x = {"name":"홍길동", "age":18}
x = {"name":"홍길동", "age":18}
28번째 줄: 29번째 줄:
print(y)
print(y)
# {"name": "\ud64d\uae38\ub3d9", "age": 18}
# {"name": "\ud64d\uae38\ub3d9", "age": 18}
</source>
</syntaxhighlight>
:→ 원래 JSON 형식은 멀티바이트 유니코드 문자를 <code>\uxxxx</code>로 표현하는 것이 표준이다.
:→ 원래 JSON 형식은 멀티바이트 유니코드 문자를 <code>\uxxxx</code>로 표현하는 것이 표준이다.
:→ JSON으로 변환된 한글을 읽기가 좀 어려울 수 있다. 이때는 인터넷 상의 JSON 변환기 등을 활용하면 편리하다.
:→ JSON으로 변환된 한글을 읽기가 좀 어려울 수 있다. 이때는 인터넷 상의 JSON 변환기 등을 활용하면 편리하다.


{{소스헤더|JSON 문자열을 파이썬 딕셔너리로 변환 2}}
{{소스헤더|JSON 문자열을 파이썬 딕셔너리로 변환 2}}
<source lang='python'>
<syntaxhighlight lang='python'>
import json
import json
x = '{"name": "\ud64d\uae38\ub3d9", "age": 18}'
x = '{"name": "\ud64d\uae38\ub3d9", "age": 18}'
41번째 줄: 42번째 줄:
print(y)
print(y)
# {'name': '홍길동', 'age': 18}
# {'name': '홍길동', 'age': 18}
</source>
</syntaxhighlight>
:→ 다시 딕셔너리로 변환하면 원래의 한글로 변환되므로 특별히 문제될 것은 없다.
:→ 다시 딕셔너리로 변환하면 원래의 한글로 변환되므로 특별히 문제될 것은 없다.


49번째 줄: 50번째 줄:
! Python !! JSON
! Python !! JSON
|-
|-
| dict || Object
| [[파이썬 dict]] || Object
|-
|-
| list || Array
| [[파이썬 list]]<br>[[파이썬 tuple]]<ref>JSON으로 변환하면 Array가 되지만 이때 원래 튜플이었다는 정보는 유실된다. 따라서 거꾸로 변환하면 튜플이 아닌 리스트가 된다.</ref>  || Array
|-
|-
| tuple || Array
|-
|-
| str || String
| [[파이썬 str]] || String
|-
|-
| int || Number
| [[파이썬 int]]<br>[[파이썬 float]] || Number
|-
|-
| float || Number
| [[파이썬 True]] || true
|-
|-
| True || true
| [[파이썬 False]] || false
|-
|-
| False || false
| [[파이썬 None]] || null
|-
| None || null
|}
|}



2020년 11월 2일 (월) 02:54 기준 최신판

1 개요[ | ]

Python JSON 다루기
파이썬 JSON 처리
  • JSON 문자열은 Python 자료형(주로 딕셔너리, 리스트)과 상호 변환가능하며, 형식도 매우 유사하다.
  • 문자열의 경우, Python에서는 작은따옴표를 주로 사용하지만 JSON 표준에서는 큰따옴표만 허용된다.
  • 또한 JSON 표준은 유니코드 처리 방식이 다르므로 한글 등의 처리시 유의할 필요가 있다.
  • 아래의 실행결과는 Python 3 기준이다.[1]
JSON 문자열을 파이썬 딕셔너리로 변환
import json
x = '{"name":"홍길동", "age":18}'
y = json.loads(x)
print(type(y))
# <class 'dict'>
print(y)
# {'name': '홍길동', 'age': 18}
print(y['age'])
# 18
파이썬 딕셔너리를 JSON 문자열로 변환
import json
x = {"name":"홍길동", "age":18}
y = json.dumps(x)
print(type(y))
# <class 'str'>
print(y)
# {"name": "\ud64d\uae38\ub3d9", "age": 18}
→ 원래 JSON 형식은 멀티바이트 유니코드 문자를 \uxxxx로 표현하는 것이 표준이다.
→ JSON으로 변환된 한글을 읽기가 좀 어려울 수 있다. 이때는 인터넷 상의 JSON 변환기 등을 활용하면 편리하다.
JSON 문자열을 파이썬 딕셔너리로 변환 2
import json
x = '{"name": "\ud64d\uae38\ub3d9", "age": 18}'
y = json.loads(x)
print(type(y))
# <class 'dict'>
print(y)
# {'name': '홍길동', 'age': 18}
→ 다시 딕셔너리로 변환하면 원래의 한글로 변환되므로 특별히 문제될 것은 없다.

2 Python-JSON 자료형 대응[ | ]

Python JSON
파이썬 dict Object
파이썬 list
파이썬 tuple[2]
Array
파이썬 str String
파이썬 int
파이썬 float
Number
파이썬 True true
파이썬 False false
파이썬 None null

3 같이 보기[ | ]

4 참고[ | ]

  1. Python 2는 자료형, 유니코드 처리 방식이 다르므로 취급에 주의가 필요하다.
  2. JSON으로 변환하면 Array가 되지만 이때 원래 튜플이었다는 정보는 유실된다. 따라서 거꾸로 변환하면 튜플이 아닌 리스트가 된다.
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}