1. 간단한 json 파일
[
{
"id": "A001",
"city": "Tokyo",
"country": "Japan",
},
{
"id": "B012",
"city": "Jerusalem",
"country": "Isreal",
},
{
"id": "C123",
"city": "Busan",
"country": "South Korea",
}
]
위와 같은 json 파일을 pandas 로 읽어오려면, 아래와 같이 코드를 작성할 수 있다.
import pandas as pd
df = pd.read_json('./data/simple.json')
2. json 파일 내부 요소를 불러오기 ( nest list 형태 )
만약에 아래와 같은 구조를 보이는 json 파일이라면, 위에서처럼 단순히 read_json() 을 사용할 수 없다.
그러면 아래의 그림처럼 데이터프레임이 생성된다.
우리는 "body" 에 있는 나라와 도시에 대한 정보를 데이터프레임으로 만들고 싶기 때문에 다른 함수를 사용해야 한다.
먼저 json 파일을 로드하고 Flatten 하게 만든다. 이때는 json_normalize() 함수를 사용한다.
import pandas as pd
import json
# opening JSON file
f = open('./data/nested.json')
data = json.load(f)
df = pd.json_normalize(data, record_path=['Geo', 'body'])
위의 코드를 보면,
1. pandas, json 을 import 해주고
2. json 파일을 읽어서 load 시켜준다.
3. 이후, json_normalize 를 하며, record_path 를 통해 어느 부분까지 들어가서 읽을 것인지를 설정해준다.
다음은 위 코드를 실행한 결과이다.
이 외에도, meta 정보를 붙여서 출력하던지, single value 만 출력하는 방식이 있으므로 다음의 사이트를 참고하면 더욱 자세한 내용을 확인할 수 있다.
https://towardsdatascience.com/how-to-convert-json-into-a-pandas-dataframe-100b2ae1e0d8
'[Python] 연습' 카테고리의 다른 글
[python] 한국어 띄어쓰기 처리 (0) | 2022.11.13 |
---|---|
[python] 리스트 형태의 값을 분리하여 각 하나의 값으로 표현하기 (0) | 2022.11.12 |
[python] 프로그래머스 신고결과받기 (0) | 2022.10.29 |
[python] 프로그래머스 성격유형검사하기 (0) | 2022.10.28 |
[python] OneHotEncoding(원핫인코딩) using pandas, scikit learn (0) | 2022.10.23 |