반응형

1. 시험환경

    ˙ Python

    ˙ JSON

 

2. 목적

    ˙ python을 이용하여 JSON 파일 Parsing 하는 코드를 작성한다.

    ˙ JSON 파일로부터 읽어들인 내용을 출력하는 코드를 작성한다.

 

3. 적용

    ① json 샘플파일은 공공 데이터 포털에서 획득한 아파트 실거래가 정보이다.

sample.json
0.03MB

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
{
    "response":{
       "header":{
          "resultCode":"00",
          "resultMsg":"NORMAL SERVICE."
       },
       "body":{
          "items":{
             "item":[
                {
                   "거래금액":"250,000",
                   "거래유형":"중개거래",
                   "건축년도":"2010",
                   "년":"2022",
                   "도로명":"소공로",
                   "도로명건물본번호코드":"00046",
                   "도로명건물부번호코드":"00000",
                   "도로명시군구코드":"11140",
                   "도로명일련번호코드":"05",
                   "도로명지상지하코드":"0",
                   "도로명코드":"3101004",
                   "법정동":"회현동2가",
                   "법정동본번코드":"0087",
                   "법정동부번코드":"0000",
                   "법정동시군구코드":"11140",
                   "법정동읍면동코드":"12200",
                   "법정동지번코드":"1",
                   "아파트":"쌍용남산플래티넘",
                   "월":"1",
                   "일":"31",
                   "일련번호":"11140-1123",
                   "전용면적":"177",
                   "중개사소재지":"서울 중구",
                   "지번":"87",
                   "지역코드":"11140",
                   "층":"23",
                   "해제사유발생일":"None",
                   "해제여부":"None"
                },
                {
                   "거래금액":"59,500",
                   "거래유형":"직거래",
                   "건축년도":"1982",
                   "년":"2022",
                   "도로명":"퇴계로50길",
                   "도로명건물본번호코드":"00042",
                   "도로명건물부번호코드":"00000",
                   "도로명시군구코드":"11140",
                   "도로명일련번호코드":"01",
                   "도로명지상지하코드":"0",
                   "도로명코드":"4103357",
                   "법정동":"묵정동",
                   "법정동본번코드":"0011",
                   "법정동부번코드":"0002",
                   "법정동시군구코드":"11140",
                   "법정동읍면동코드":"13600",
                   "법정동지번코드":"1",
                   "아파트":" 충무",
                   "월":"1",
                   "일":"27",
                   "일련번호":"11140-16",
                   "전용면적":"54.18",
                   "중개사소재지":"None",
                   "지번":"11-2",
                   "지역코드":"11140",
                   "층":"1",
                   "해제사유발생일":"None",
                   "해제여부":"None"
                },
                {
                   "거래금액":"25,000",
                   "거래유형":"직거래",
                   "건축년도":"2020",
                   "년":"2022",
                   "도로명":"동호로33길",
                   "도로명건물본번호코드":"00015",
                   "도로명건물부번호코드":"00000",
                   "도로명시군구코드":"11140",
                   "도로명일련번호코드":"00",
                   "도로명지상지하코드":"0",
                   "도로명코드":"4103109",
                   "법정동":"오장동",
                   "법정동본번코드":"0145",
                   "법정동부번코드":"0001",
                   "법정동시군구코드":"11140",
                   "법정동읍면동코드":"15400",
                   "법 정동지번코드":"1",
                   "아파트":"오렌지카운티을지로",
                   "월":"1",
                   "일":"1",
                   "일련번호":"11140-1355",
                   "전용면적":"14.37",
                   "중개사소재지":"None",
                   "지번":"145-1",
                   "지역코드":"11140",
                   "층":"14",
                   "해제사유발생일":"22.01.21",
                   "해제여부":"O"
                },
                {
                   "거래금액":"25,000",
                   "거래유형":"직거래",
                   "건축년도":"2020",
                   "년":"2022",
                   "도로명":"동호로33길",
                   "도로명건물본번호코드":"00015",
                   "도로명건물부번호코드":"00000",
                   "도로명시군구코드":"11140",
                   "도로명일련번호코드":"00",
                   "도로명지상지하코드":"0",
                   "도로명코드":"4103109",
                   "법정동":"오장동",
                   "법정동본번코드":"0145",
                   "법정동부번코드":"0001",
                   "법정동시군구코드":"11140",
                   "법정동읍면동코드":"15400",
                   "법정동지번코드":"1",
                   "아파트":"오렌지카운티을지로",
                   "월":"1",
                   "일":"1",
                   "일련번호":"11140-1355",
                   "전용면적":"14.37",
                   "중개사소재지":"None",
                   "지번":"145-1",
                   "지역코드":"11140",
                   "층":"15",
                   "해제사유발생일":"22.02.03",
                   "해제여부":"O"
                }
             ]
          },
          "numOfRows":"1000",
          "pageNo":"1",
          "totalCount":"19"
       }
    }
 }
cs

 

    ② 동일 폴더에 있는 sample.json 파일 Parsing 및 출력 코드를 작성한다.

main.py
0.00MB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import json
 
 
if __name__ == '__main__':
 
    jsonFile = './sample.json'
    with open(jsonFile, encoding='UTF-8'as f:
        data = json.load(f)
 
    aptDealList = list()
    if data['response']['header']['resultCode'== '00':
        aptDealList = data['response']['body']['items']['item']
 
    for item in aptDealList:
        print(item)
    
cs

 

4. 결과

    ˙ 코드 실행 결과 json 파일을 Parsing하여 출력한다.

반응형

+ Recent posts