본문 바로가기
Python

Python - JSON 데이터 검색 및 불러오기(dumps, loads, items)

by 올엠 2024. 3. 25.
반응형
>>> 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을 가져오도록 구성해야 한다.

반응형