우리동네 교통사고 다발지역 - 서울편 v1.0 서비스는
서울특별시에 한해서 총 25개구에 대해 7개 API의 정보만 제공하면 되었기 때문에
프로토타입을 만드는 셈치고 무식하게 하드코딩된 시구 코드를 가지고 7개 API를 직접 호출한 결과를 저장해 놓고 구현했다.
지자체별사고 다발지역 API 하나에 대해서만 할 때만해도 이정도쯤이야 직접 호출해 보는게 빨라..
이것만 하고 다른 건 추가 안 할거야...이런 마음으로 시작해서 결과를 저장하기 위해 직접 호출하는 것쯤이야 인내할 만했는데
API의 종류가 증가하고
서울특별시 외에 모든 시의 모든 군/구에 대해서 막상 지원하려다보니
역시나 자동화가 필요했다. 이럴 땐 역시 파이썬이지.
새로 산 맥북에어에 기본 설치되어 있는 파이썬을 확인해보니 is not recommended. 추천 안 한다는데 굳이 쓸 이유가 없지.
그럼 새로 산 맥북에 파이썬3를 설치할 것인가 살짝 고민하다가...
danu@danuui-MacBookAir ~ % python
WARNING: Python 2.7 is not recommended.
This version is included in macOS for compatibility with legacy software.
Future versions of macOS will not include Python 2.7.
Instead, it is recommended that you transition to using 'python3' from within Terminal.
Python 2.7.16 (default, Dec 13 2019, 18:00:32)
[GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s on darwin
Type "help", "copyright", "credits" or "license" for more information.
구름IDE에 파이썬이 설치된 이미지로 구동되는 컨테이너를 생성해 보기로 했다.
기본 이미지에 포함되어 있는 소프트웨어다. 이 정도면 지금 내가 하려고 하는 것에 전혀 문제가 없다.
API별, 시군구별 목록을 만들어서 각각의 호출결과를 파일로 생성하는 간단한 파이썬 프로그램을 만들었는데 구름 IDE에서 잘 작동한다.
for url in urls:
for address in addresses:
results = []
siDo = address["siDo"]
fileName = url["name"] + "_" + address["name"]
for guGun in address["guGun"]:
params = "&siDo=" + siDo + "&guGun=" + guGun
data = requests.get(url["url"] + params).json()
if data.get("resultCode") == "00" and data.get("resultMsg") == "NORMAL_CODE":
results.append(data)
print(data)
else:
print("ERROR")
time.sleep(0.5)
print(fileName)
with open(fileName + ".json", 'w', encoding='utf-8') as make_file:
json.dump(results, make_file, indent="\t")
얼마 전에 첫째딸이 코딩을 공부하고 싶다고 해서 파이썬 책을 하나 사 줬는데,
첫 장부터 이것저것 설치하라고 하니 짜증부터 내던데..딸한테 구름IDE를 어서 알려줘야 겠다. 참 편하다.
'우리동네 교통사고 다발지역' 카테고리의 다른 글
구글 플레이(Google Play) 앱 등록 거절 (0) | 2020.02.20 |
---|---|
[3] 우리동네 교통사고 다발지역 - 전국편 v2.0 (0) | 2020.02.18 |
[GoogleMap] 위치 검색 자동완성 (0) | 2020.02.18 |
[GoogleMap] 구역을 표시해보자 - Polygon (0) | 2020.02.18 |
[GoogleMap] 구글맵에 마커(Marker)를 추가해 보자 (2) (0) | 2020.02.18 |