JSON은 사람이 읽을 수 있는 텍스트 기반 데이터 형식입니다. 언어 독립적이며 응용 프로그램 간의 데이터 교환에 사용됩니다.
이 문서에서는 Python에서 JSON 데이터를 구문 분석하는 방법에 대해 설명합니다.
파이썬 JSON
JSON 데이터를 인코딩 및 디코딩할 수 있는 json 모듈은 Python 표준 라이브러리의 일부입니다.
JSON은 데이터를 나타내는 문자열입니다. 인코딩 또는 직렬화는 Python 객체를 파일에 저장하거나 네트워크를 통해 전송할 수 있는 JSON 문자열로 변환하는 것을 의미합니다. JSON 문자열이 Python 개체로 변환되는 인코딩의 역방향 프로세스를 디코딩하거나 디시리얼화합니다.
아래 표는 Python 개체와 이에 상응하는 JSON 표현을 보여줍니다.
Python | JSON |
dict | object |
list, tuple | array |
str | string |
int, float | number |
True | true |
False | false |
None | null |
JSON으로 작업하려면 파일 상단의 모듈을 가져오면 됩니다.
import json
Python으로 JSON을 인코딩하고 있습니다.
json 모듈에는 Python 객체를 JSON 형식의 문자열로 인코딩하는 두 가지 메서드가 있습니다. dump()와 dumps().
dump() 메서드는 출력을 파일 같은 개체로 보냅니다. 인코딩할 개체와 파일 같은 개체의 두 가지 위치 인수가 필요합니다. 다음은 예입니다.
data = {
"country": "Germany",
"vehicle": {
"name": "Volkswagen",
"model": "T-Roc"
}
}
with open("file.json", "w") as file:
json.dump(data, file)
스크립트를 실행하면 file.json이라는 파일이 생성됩니다.
# file.json
{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}
dump() 메소드는 dump()와 동일하게 작동하지만 출력을 파일 같은 개체로 보내는 대신 문자열을 반환합니다.
data = {
"country": "Germany",
"vehicle": {
"name": "Volkswagen",
"model": "T-Roc"
}
}
json.dumps(data)
# '{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}'
두 메서드 모두 동일한 키워드 인수를 사용할 수 있습니다. 예를 들어, JSON dat를 분석하거나 디버깅하는 경우 들여쓰기 수준을 지정할 수 있습니다.
data = {
"country": "Germany",
"vehicle": {
"name": "Volkswagen",
"model": "T-Roc"
}
}
print(json.dumps(data, indent=2))
# {
# "country": "Germany",
# "vehicle": {
# "name": "Volkswagen",
# "model": "T-Roc"
# }
# }
Python에서 JSON을 디코딩
JSON 인코딩 데이터를 Python 개체로 변환하려면 load() 및 load() 메서드를 사용합니다.
load() 메소드는 파일 같은 객체에서 JSON 구조를 읽어와 Python 객체로 변환합니다.
다음과 같은 JSON 파일이 있다고 가정해 보겠습니다.
# file.json
[
{
"userId": 1,
"id": 1,
"title": "Meet with Lisa",
"completed": true
},
{
"userId": 1,
"id": 2,
"title": "Design a prototype",
"completed": false
}
]
JSON 데이터를 Python 표현으로 변환하려면 다음과 같이 사용합니다.
import json
with open('file.json') as f:
data = json.load(f)
type(data)
# <class 'list'>
JSON이 Python 목록으로 변환되어 코드에서 사용할 수 있습니다.
loads() 메소드는 JSON 문서를 포함하는 문자열을 Python 개체로 변환합니다.
import json
json_str= '{"userId": "1", "id": "1", "title": "Meet with Lisa", "completed": "True"}'
print(json.loads(json_str))
# {'userId': '1', 'id': '1', 'title': 'Meet with Lisa', 'completed': 'True'}
문자열이 Python 사전으로 변환됩니다.
다음은 api를 요청하고 JSON 데이터를 디코딩하는 방법을 보여주는 고급 예입니다.
import json
import requests
response = requests.get("https://jsonplaceholder.typicode.com/users")
users = json.loads(response.text)
print(users)
파이썬에서 JSON 데이터를 인코딩하고 디코딩하는 방법을 알아봅니다.
'SW > Python' 카테고리의 다른 글
Python : map() 함수 사용 방법, 예제, 명령어 (1) | 2022.11.07 |
---|---|
Python : Comment 사용 방법, 예제, 명령어 (0) | 2022.10.27 |
Python : Modulo Operator : 나머지 연산자 사용 방법, 예제, 명령어 (0) | 2022.10.15 |
Python : List에 Element 추가 방법 : append, extend, insert (0) | 2022.10.11 |
Python : List (리스트) 정렬 방법, 예제, 명령어 (0) | 2022.10.03 |