SW/Python

Python : JSON 데이터 파싱 방법, 예제, 명령어

얇은생각 2022. 10. 20. 07:30
반응형

JSON은 사람이 읽을 수 있는 텍스트 기반 데이터 형식입니다. 언어 독립적이며 응용 프로그램 간의 데이터 교환에 사용됩니다.

이 문서에서는 Python에서 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 데이터를 인코딩하고 디코딩하는 방법을 알아봅니다.

반응형