티스토리 뷰
문제주소 : https://askdjango.github.io/lv2/
import requests
import json
#from bs4 import BeautifulSoup
from requests.api import request
#lv2는 ajax . 비동기 방식이기 때문에 일반적으로 json파일 안에 데이터더미가 들어있다.
url = 'https://askdjango.github.io/lv2/data.json'
#해당 json파일을 text화
response = requests.get(url).text
#json loader로 해당 text를 우리가 확일 할 수 있는 값으로 변경
data_list = json.loads(response)
#출력
print(data_list)
출력결과
{'s2': [{'name': '장고 2.0 주요 변경내역 살펴보기', 'url': 'https://www.askcompany.kr/r/sections/f04de5e/'}, {'name': '(기초편) 장고 차근차근 시작하기 2/E', 'url': 'https://www.askcompany.kr/r/sections/dfc55e7/'}, {'name': '(중급편) 장고 기본인증 뽀개기', 'url': 'https://www.askcompany.kr/r/sections/5bb1344/'}, {'name': '(중급편) 장고 Form/ModelForm 제대로 알고 쓰기', 'url': 'https://www.askcompany.kr/r/sections/72d2474/'}, {'name': '(중급편) 클래스 기반 뷰 잘 알고 쓰기', 'url': 'https://www.askcompany.kr/r/sections/387169d/'}, {'name': '(배포) 빠르게 살펴보는 Azure PaaS를 활용한 인프라 스트레스없는 웹서비스 배포', 'url': 'https://www.askcompany.kr/r/sections/7d64b4a/'}, {'name': '(초급) Pandas 워밍업', 'url': 'https://www.askcompany.kr/r/sections/f5bf323/'}, {'name': '(초급) 10 Minutes to Pandas 따라하기', 'url': 'https://www.askcompany.kr/r/sections/d8ccb08/'}, {'name': 'Google Dialogflow와 파이썬/장고를 활용하여, 카카오톡 챗봇 만들기 (초급편)', 'url': 'https://www.askcompany.kr/r/sections/d47e585/'}], 's1': [{'name': '개
발환경 구축하기', 'url': 'https://www.askcompany.kr/vod/setup/'}, {'name': '파이썬 차근차근 시작하기', 'url': 'https://www.askcompany.kr/vod/python/'}, {'name': '크롤링 차근차근 시작하기', 'url': 'https://www.askcompany.kr/vod/crawling/'}, {'name': '파이썬으로 업무 자동화', 'url': 'https://www.askcompany.kr/vod/automation/'}, {'name': '장고 - 기본편', 'url': 'https://www.askcompany.kr/vod/django/'}, {'name': '장
고걸스 튜토리얼', 'url': 'https://www.askcompany.kr/vod/djangogirls/'}, {'name': '장고 - Form/ModelForm 잘 알고 쓰기', 'url': 'https://www.askcompany.kr/vod/form/'}, {'name': '장고 - 클래스 기반 뷰. 잘 알고
쓰기', 'url': 'https://www.askcompany.kr/vod/cbv/'}, {'name': '장고 - 결제 시스템 연동', 'url': 'https://www.askcompany.kr/vod/payment/'}, {'name': '장고 - 웹 프론트엔드 시작편', 'url': 'https://www.askcompany.kr/vod/frontend/'}, {'name': '장고 - 다양한 위젯 만들기', 'url': 'https://www.askcompany.kr/vod/widgets/'}, {'name': '장고 - API 서버 만들기 및 초간단 안드로이드 앱 만들기', 'url': 'https://www.askcompany.kr/vod/apiserver/'}, {'name': '장고 - 하이브리드 앱 만들기', 'url': 'https://www.askcompany.kr/vod/hybrid/'}, {'name': '장고 - 서비스 배포하기', 'url': 'https://www.askcompany.kr/vod/deploy/'}, {'name': '장고
- 실전편 (Feat. 배달의 민족 St. 만들기)', 'url': 'https://www.askcompany.kr/vod/django-baemin/'}, {'name': '장고 - 실전편 (Feat. 인스타그램 St. 만들기)', 'url': 'https://www.askcompany.kr/vod/django-instagram/'}]}
이렇게 json형태로 받게 되면, 다시한번 데이터 정제를 통해서 우리가 원하는 형태로 가공해야 한다.
이 데이터 더미를 보면 name과 url로 분리되어 있다.
import requests
import json
from bs4 import BeautifulSoup
from requests.api import request
url = 'https://askdjango.github.io/lv2/data.json'
response = requests.get(url).text
data_list = json.loads(response)
data_s1 = data_list["s1"]
data_s2 = data_list["s2"]
for i in data_s1:
print(i['name'],i['url'])
for i in data_s2:
print(i['name'],i['url'])
하면서 시행착오가 있었는데. s1과 s2로 이중배열상태여서 내가 원하는대로 json 파싱이 안됐다.
for문을 2개나 돌려서 비효율적이지만 현재로는 이 상태가 가장 내가 원하는 형태와 가까웠다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 빅-오
- prometheus
- MariaDB
- UserService
- elasticSearch
- consumer
- JWT
- Logstash 활용
- config
- producer
- zipkin
- docker
- Kafka Connect
- 운동
- ACTUATOR
- 운동일기
- kafka
- rabbitmq
- 루틴기록
- Gateway
- LoadBalancer
- springcloud
- Logstash to ElasticSearch
- 미래의나에게동기부여
- github
- git
- 오늘저녁 삼겹살
- Spring + ELK
- Feign
- MSA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함