Python 데이터 분석

Python 데이터분석 기초 16 - web 에서 JSON 문서 읽기, DataFrame으로 만든 자료를 html 로 변형

코딩탕탕 2022. 11. 1. 17:51

 

# web 에서 JSON 문서 읽기
import json
import urllib.request as req

url = "https://raw.githubusercontent.com/pykwon/python/master/seoullibtime5.json"

plainText = req.urlopen(url).read().decode()
print(type(plainText)) # <class 'str'>

jsonData = json.loads(plainText)  # str --> dict : json 디코딩
print(type(jsonData))  # <class 'dict'>

print(jsonData['SeoulLibraryTime']['row'][0]['LBRRY_NAME']) # row 0번째의 LBRRY_NAME 호출

libDatas = jsonData.get('SeoulLibraryTime').get('row')
print(libDatas)

print()
datas = []

for ele in libDatas:
    name = ele.get('LBRRY_NAME')
    tel = ele.get('TEL_NO')
    addr = ele.get('ADRES')
    # print(name + '\t' + tel + '\t' + addr)
    imsi = [name, tel, addr]
    datas.append(imsi)
    
import pandas as pd
df = pd.DataFrame(datas, columns = ['이름', '전화', '주소'])
print(df)
print(df.to_html()) # html 형식으로 바꿔준다.

<console>
<class 'str'>
<class 'dict'>
LH강남3단지작은도서관
[{'LBRRY_NAME': 'LH강남3단지작은도서관', 'CODE_VALUE': '강남구', 'ADRES': '서울특별시 강남구 자곡로3길 22', 'FDRM_CLOSE_DATE': '매주 화요일,목요일', 'TEL_NO': '02-459-8700', 'XCNTS': '37.46997231', 'YDNTS': '127.0910208'}, {'LBRRY_NAME': '강남구립못골도서관', 'CODE_VALUE': '강남구', 'ADRES': '서울특별시 강남구 자곡로 116', 'FDRM_CLOSE_DATE': '매월 둘째, 넷째 화요일 및 일요일을 제외한 법정 공휴일', 'TEL_NO': '02-459-5522', 'XCNTS': '37.47153836', 'YDNTS': '127.096582'}, {'LBRRY_NAME': '강남역삼푸른솔도서관', 'CODE_VALUE': '강남구', 'ADRES': '서울특별시 강남구 테헤란로8길 36. 4층', 'FDRM_CLOSE_DATE': '2,4 주 화요일 및 법정 공휴일', 'TEL_NO': '02-2051-1178', 'XCNTS': '37.4964968', 'YDNTS': '127.0320274'}, {'LBRRY_NAME': '강남한신휴플러스8단지작은도서관', 'CODE_VALUE': '강남구', 'ADRES': '서울특별시 강남구 밤고개로27길 20(율현동, 강남한신휴플러스8단지)', 'FDRM_CLOSE_DATE': '토,일요일, 법정공휴일', 'TEL_NO': '02-445-9831', 'XCNTS': '37.46971323', 'YDNTS': '127.1130164'}, {'LBRRY_NAME': '강남한양수자인작은씨앗도서관', 'CODE_VALUE': '강남구', 'ADRES': '서울특별시 강남구 자곡로 260', 'FDRM_CLOSE_DATE': '매주 일요일', 'TEL_NO': '', 'XCNTS': '37.47586067', 'YDNTS': '127.1134903'}]

                 이름            전화                                      주소
0      LH강남3단지작은도서관   02-459-8700                      서울특별시 강남구 자곡로3길 22
1         강남구립못골도서관   02-459-5522                       서울특별시 강남구 자곡로 116
2        강남역삼푸른솔도서관  02-2051-1178                 서울특별시 강남구 테헤란로8길 36. 4층
3  강남한신휴플러스8단지작은도서관   02-445-9831  서울특별시 강남구 밤고개로27길 20(율현동, 강남한신휴플러스8단지)
4    강남한양수자인작은씨앗도서관                                     서울특별시 강남구 자곡로 260
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>이름</th>
      <th>전화</th>
      <th>주소</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>LH강남3단지작은도서관</td>
      <td>02-459-8700</td>
      <td>서울특별시 강남구 자곡로3길 22</td>
    </tr>
    <tr>
      <th>1</th>
      <td>강남구립못골도서관</td>
      <td>02-459-5522</td>
      <td>서울특별시 강남구 자곡로 116</td>
    </tr>
    <tr>
      <th>2</th>
      <td>강남역삼푸른솔도서관</td>
      <td>02-2051-1178</td>
      <td>서울특별시 강남구 테헤란로8길 36. 4층</td>
    </tr>
    <tr>
      <th>3</th>
      <td>강남한신휴플러스8단지작은도서관</td>
      <td>02-445-9831</td>
      <td>서울특별시 강남구 밤고개로27길 20(율현동, 강남한신휴플러스8단지)</td>
    </tr>
    <tr>
      <th>4</th>
      <td>강남한양수자인작은씨앗도서관</td>
      <td></td>
      <td>서울특별시 강남구 자곡로 260</td>
    </tr>
  </tbody>
</table>