1 minute read

json 파일을 읽은 다음에 데이터 프레임을 만들려고 한다.
사용하는 json은 MS-ASL 데이터에 대한 정보가 담긴 파일이다.

Import

1
2
import json
import pandas as pd

Code

root 변수를 만들어 절대 경로를 지정해주고 ‘main‘으로 메인 함수를 작성하자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
root = {절대경로}

if __name__ == '__main__':
  with open(root + '/datasest/MS-ASL/MSASL_train.json') as f:
    json_data = json.load(f)

    # json 파일 출력하기
    print("train_shape => (", len(json_data), ",", len(json_data[0]),")") # (16054, 16)

    # 각 속성 담기
    url, start_time, end_time, label, signer_id, box, text, width, height, fps = [], [], [], [], [], [], [], [] ,[] ,[]
    
    for i in range(len(json_data)):
        url.append(json_data[i]["url"])
        start_time.append(json_data[i]["start_time"])
        end_time.append(json_data[i]["end_time"])
        label.append(json_data[i]["label"])
        signer_id.append(json_data[i]["signer_id"])
        box.append(json_data[i]["box"])
        text.append(json_data[i]["text"])
        width.append(json_data[i]["width"])
        height.append(json_data[i]["height"])
        fps.append(json_data[i]["fps"])

    # 데이터 프레임 만들기
    df = pd.DataFrame({
        "url": url,
        "start_time": start_time,
        "end_time": end_time,
        "label": label,
        "signer_id": signer_id,
        "box": box,
        "text": text,
        "width": width,
        "height": height,
        "fps": fps
    })
    
    print(df)

root를 만들어 준 이유는 Ubuntu 20.04 버전에서 디스크를 마운트해서 사용하고 있기 때문이다.
그래서 기본 경로보다 길기 때문에 전부 다 작성하기 귀찮아 변수로 만들었다.
open() 매개변수로 root + {상대 경로}를 넘겨줘 json 파일을 불러왔다.
그리고 json_data에 json 정보를 담고 제대로 담겼는지 확인하려면 json.dumps에 “\t”를 주어 띄어쓰기가 이쁘게 된 상태로 json_data를 출력할 수 있다.
각 속성명으로 리스트를 만들어 각 속성명에 해당하는 값들을 담고 pd.DataFrame()에 넘겨줘 df라는 데이터 프레임을 만들었다.
마지막으로 데이터 프레임이 잘 만들어졌는데 print()로 실행시켜보면 끝이다.