>>> load_json_data.keys()
>>> for json_key in load_json_data.keys():
... print(load_json_data[json_key])
...
('a', 'atest')
('b', ['{"b":"btest"}'])
최근에는 API간 통신을 JSON 형태로 진행하는 경우가 많은데, Python은 JSON 친화적인 언어라고 할 수 있다.
Python에서 JSON을 어떻게 다루는지 간단히 알아보자.
JSON 만들기(dumps)
JSON 데이터를 생성하는 방법은 다음과 같이 중괄호를 이용하여 키를 지정하여 Value를 넣어주면 된다.
>>> json_data = {}
>>> json_data['a'] = 'atest'
>>> json_data
{'a': 'atest'}
만약에 하위에 여러개의 값이 있는 경우 먼저 List라고 선언을 해주고 여기에 키, 값 형식으로 값을 중괄호로 생성하면 리스트의 값도 넣을 수 있다.
>>> json_data['b'] = []
>>> json_data['b'].append('{"b":"btest"}')
>>> json_data
{'a': 'atest', 'b': ['{"b":"btest"}']}
이를 실제 API에서 JSON으로 활용하고자 한다면, str로 변환 해야 하며, json 라이브러리의 dumps 함수을 사용하여 활용이 가능하다.
>>> import json
>>> dump_json_data = json.dumps(json_data)
>>> dump_json_data
'{"a": "atest", "b": ["{\\"b\\":\\"btest\\"}"]}'
>>> type(dump_json_data)
<class 'str'>
JSON 블러오기(loads)
반대로 JSON 데이터를 가져와서 Python에서 데이터 검색 하거나 추가, 변경을 하기 위해서는 dict 타입으로 변환해야 한다. 이를 위해서 json 라이브러리에 json.loads 를 통해 dict로 변경하여 사용이 가능하다.
>>> import json
>>> load_json_data = json.loads(dump_json_data)
>>> load_json_data
{'a': 'atest', 'b': ['{"b":"btest"}']}
>>> type(load_json_data)
<class 'dict'>
JSON 검색(keys, items)
JSON, 정확히는 Dict 형태의 데이터를 검색할 때 유용하게 사용할 수 있는 함수가 keys와 items가 있다.
Key는 현재 List 레벨의 Key 값을 가져오게 된다. 해당 Key값을 기준으로 검색을 한다거나 조건을 통해 데이터 내용을 확인하는 방식을 취할 수 있다.
다음은 items를 이용해서 현재 List 레벨의 key와 value를 모두 가져와서 조건을 설정할 수 있다.
>>> for key, value in load_json_data.items():
... print('key', key, 'value is', value)
...
key a value is atest
key b value is ['{"b":"btest"}']
여기에서 주의할 점은 각 key와 item은 혅재 레벨이라는 것이다, 즉 하위에 추가 리스트가 있는 경우 해당 하위 키에서 item을 가져오도록 구성해야 한다.
'Python' 카테고리의 다른 글
Python - GIL, 멀티 쓰레드(thread) vs 멀티 프로세스(multiprocessing, subprocess) (0) | 2024.03.25 |
---|---|
Python - *args와 **kwargs 이해 (0) | 2024.03.25 |
Python - FastAPI with CRUD application by pydantic (0) | 2024.03.25 |
Python - FastAPI Relationship SQL data 처리 (0) | 2024.03.25 |
PYTHON - pip 패키지 실치 [SSL: CERTIFICATE_VERIFY_FAILED] 오류 해결 (0) | 2024.03.18 |