내가 NoSQL에 대 SQL의 토론에 들어갈 싶지 않아요. 또한, 당신의 조언에 대한 당신의 프로젝트에 대해 충분히 알지 못합니다.
- 이 앱에 적절한 데이터베이스 스키마
- 구문 분석을
- 그림을 사용할 수 있는지 확인하기 위해 JSON을 탐험 :하지만 당신은 SQL과 경험을 가지고, 당신이하고 싶은 것 같다 json을 만들고 방금 작성한 데이터베이스에 삽입하십시오.
검색 한 적이 없지만이 http 요청에 의해 제공되는 정보에 대한 coursera의 문서가있을 수 있습니다. 이를 사용하여 모델 개발을 안내 할 수 있습니다.
데이터에 들어가서 경험적으로 모델을 파악하려는 경우 requests.json()이 자동으로 json 콘텐츠를 사전에 디코딩합니다.
각 노드 아래에 무엇의 느낌을 얻기 위해 반복적으로 그렇게 할 방법
>>> r.json().keys() # returns the following line:
dict_keys(['unis', 'insts', 'cats', 'topics', 'courses'])
) (당신이 dict.keys을 사용할 수 있습니다,이 DICT을 탐구합니다. 리스트를 히트하면,이 두리스트를 검사하십시오. 목록은 SQL 세계에서 행으로 변환 될 가능성이 높습니다. 목록에 dicts가 있으면 필드 이름의 개념을 알 수 있습니다. 또한,이 목록 내부의 dicts이 중첩 된 dicts 경우, 즉 여기에서
>>> pp.pprint(r.json()['unis'][0]) # which gave me the first record
{'abbr_name': 'Stanford',
'banner': 'https://coursera-university-assets.s3.amazonaws.com/73/a47990ea7c11e3b00589d092602f0d/Stanford-University-Banner-LRG.jpg',
'class_logo': 'https://coursera-university-assets.s3.amazonaws.com/21/9a0294e2bf773901afbfcb5ef47d97/Stanford_Coursera-200x48_RedText_BG.png',
'description': 'The Leland Stanford Junior University, commonly referred to '
'as Stanford University or Stanford, is an American private '
'research university located in Stanford, California on an '
'8,180-acre (3,310 ha) campus near Palo Alto, California, '
'United States.',
'display': True,
'favicon': 'https://coursera-university-assets.s3.amazonaws.com/dc/581cda352d067023dcdcc0d9efd36e/favicon-stanford.ico',
'home_link': 'http://online.stanford.edu/',
'id': 1,
'landing_page_banner': 'https://coursera-university-assets.s3.amazonaws.com/6f/75dd30dd5911e38988193a0e8ad8fe/Stanford_Coursera-200x48_RedText_BG.jpg',
'location': 'Palo Alto, CA, United States',
'location_city': 'Palo Alto',
'location_country': 'US',
'location_lat': 37.4418834,
'location_lng': -122.14301949999998,
'location_state': 'CA',
'logo': 'https://coursera-university-assets.s3.amazonaws.com/d8/4c69670e0826e42c6cd80b4a02b9a2/stanford.png',
'name': 'Stanford University',
'partner_type': 1,
'primary_color': '#8C1515',
'rectangular_logo_svg': 'https://coursera-university-assets.s3.amazonaws.com/d6/cb68d0d09b11e3a575e17d6a22968b/SUSig_StnfrdOnly.svg',
'short_name': 'stanford',
'square_logo': 'https://coursera-university-assets.s3.amazonaws.com/e3/cebbb0d0a311e39b31794df7e5d956/Coursera-SUSig_StnfrdUStack_SQ.png',
'square_logo_source': 'https://coursera-university-assets.s3.amazonaws.com/e2/c49eb0d0a311e3ad37254033038522/Coursera-SUSig_StnfrdUStack_SQ.png',
'square_logo_svg': 'https://coursera-university-assets.s3.amazonaws.com/e0/0dbc10d0a311e3ad37254033038522/Coursera-SUSig_StnfrdUStack_SQ.svg',
'website': '',
'website_facebook': '',
'website_twitter': '',
'website_youtube': ''}
, 내가 노력, 그래서
>>> r.json()['unis'].keys() # gives me the following error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'keys'
을 관계
예를 들어
을 나타낼 수, 순진, 나는 것 이 코드 줄에 의해 반환 된 다음 필드가있는 coursera_unis라는 테이블을 만듭니다.
>>> r.json()['unis'][0].keys()
dict_keys(['website_facebook', 'location', 'website_twitter', 'square_logo', 'favicon', 'id', 'website', 'location_lng', 'logo', 'location_lat', 'partner_type', 'short_name', 'website_youtube', 'square_logo_svg', 'banner', 'primary_color', 'location_country', 'rectangular_logo_svg', 'square_logo_source', 'name', 'landing_page_banner', 'display', 'home_link', 'description', 'abbr_name', 'location_city', 'location_state', 'class_logo'])
다음 단계는 데이터를 삽입하는 것입니다. It's already answered in this SO thread for MySQL. 유사한 옵션이 다른 db 백엔드에도 존재하므로 너무 어렵지 않습니다.
너무 넓은 질문입니다. 당신은 이미 그것을 파싱했고 그것을 저장하는 수천 가지 방법이 있습니다. – tdelaney
몇 가지 조사를 해보십시오 : 다양한 종류의 NoSQL 데이터베이스에 대해 배우고, 해당 기능을 응용 프로그램이 필요로하는 것과 비교하고, 하나를 선택하고 Python과 함께 사용하는 방법을 배웁니다. – Jesper