다운받은 json파일에서 특정 항목의 데이터를 크롤링하여 csv파일로 저장하는 예제(exam21_crawl2) > [파이썬]기초실습예제

본문 바로가기
사이트 내 전체검색

[파이썬]기초실습예제

게시판 상단

다운받은 json파일에서 특정 항목의 데이터를 크롤링하여 csv파일로 저장하는 예제(exam21_crawl2)

페이지 정보

작성자 관리자 댓글 0건 조회 267회 작성일 22-03-03 23:27

본문

 

○ 실행화면

7c485c8f5e12eb86ac001ceea9d41265_1646317522_6738.JPG
 

 

○ jsonviewer(json뷰어) 이용하여 json파일을 보기좋게 볼수있음

json뷰어사이트 http://jsonviewer.stack.hu/ text부분에  json 내용을 붙여넣기 한후 viewer탭에서 변환된 내용을 볼수 있음

list 부분에 배열로 데이터가 들어가 있는 것을 볼수 있습니다

7c485c8f5e12eb86ac001ceea9d41265_1646317545_3716.JPG
 

 

○ 소스코드 설명


import json
import csv

#exam21_json2.json파일(네이버 부평구 호텔)을 다운받아 동일 폴더에 두고 불러온후
#exam21_2.csv에 필요한 항목을 저장하는 예제
#csv로 저정한후 분류 항목에서 구분하여 애견샵등은 필터링 가능

with open('./exam21_crawl2.json', 'r', encoding='utf-8') as f:
    ls_dict = json.load(f)

#json파일 전체 출력시
#print(json.dumps(ls_dict))

ls_items = ls_dict.get("list")


f =
open('./exam21_2.csv','w',encoding='euc-kr',newline='')
wr=csv.writer(f)
wr.writerow([
'연번','업체명','분류','지번주소','도로명주소','연락처'])


# tel,virtualtel,teldisplay 중에 연락처가 있는 자료는 ls_phone에 넣어서 출력 및 저장
# json파일에서 부평구인 데이터만 출력 및 엑셀파일에 저장
for item in ls_items:  #ls_items에 들어있는 배열의 개수만큼 반복함
   
ls_rank = item.get("rank")
   
print(ls_rank)
    ls_name = item.get(
"name")
   
print(ls_name)
    ls_category = item.get(
"category")
    ls_address = item.get(
"address")
   
print(ls_address)
    ls_roadaddress = item.get(
"roadAddress")
   
print(ls_roadaddress)
    ls_tel = item.get(
"tel")
   
print('tel:'+ls_tel) 
    ls_phone=
''  #연락처는 사전에 초기화를 시킨후 변수에 값을 담음
   
if ls_tel != '':
        ls_phone = ls_tel
    ls_virtualtel = item.get(
"virtualTel")
   
print('vtel'+ls_virtualtel)
   
if ls_virtualtel != '':
        ls_phone = ls_virtualtel
    ls_teldisplay = item.get(
"telDisplay")
   
print('teldisp'+ls_teldisplay)
   
if ls_teldisplay != '':
        ls_phone = ls_teldisplay
   
print('phone'+ls_phone)

   
if '부평구' in ls_address:
        wr.writerow([ls_rank
, ls_name, ls_category, ls_address, ls_roadaddress, ls_phone])

f.close()

 

 


첨부파일

댓글목록

등록된 댓글이 없습니다.

게시판 하단

회원로그인

접속자집계

오늘
1
어제
7
최대
221
전체
17,024

그누보드5
Copyright © 소유하신 도메인. All rights reserved.