2016-09-02 4 views
0

특정 도시의 식당 검색을 위해 파이썬에서 facebook.graphAPI을 사용하고 있습니다. 돌려주는 결과는 DICT 타입입니다.
내 코드 :데이터베이스에 Dict 유형 결과를 저장하는 방법?

import facebook 
import json 

# get access_token from https://developers.facebook.com/tools/access_token/ 
graph = facebook.GraphAPI(access_token='EAAHuWhpN91gBAEcZCammDhlB2w0Q4FO1TH1J09IfZBBtJE8ruu78KNjdOxu38AOp9GxB0gv5YlSetJ70WLscYmMkpY2SrQkGWRQcojaZBZCb52kkHKs1yE868DJ9MEjrCRIMfeVZBVRwNfuT27gUFhaVomOzpyd3lHxYelx82qQZDZD', version='2.7') 
profile = graph.get_object("me") 
print profile 

rests=graph.request('search', {'q': 'Restaurants in Lahore', 'type': 'place'}) 

print type(rests) 
for key in rests: 
    print "key: %s , value: %s" % (key, rests[key]) 

#TO get posts of Restaurant with id 816463355086343 
posts = graph.get_connections('816463355086343', 'posts') 

결과는 아래 그림과 같다. 명확하게 읽을 수는 없습니다. enter image description here

그래서 읽을 수 있도록 노력하겠습니다. 그리고이 모양은

key: data , value: 
[ 
{ 
    u'category': u'Hotel', 
    u'id': u'106037262807337', 
    u'location': 
    { 
     u'city': u'Lahore', 
     u'zip': u'', 
     u'country': u'Pakistan', 
     u'longitude': 74.3356207, 
     u'state': u'', 
     u'street': u'PC Hotel Lahore, Mall Road Pakistan', 
     u'latitude': 31.5480206 
    }, 
    u'category_list': 
    [ 
     { 
      u'id': u'165679780146824', 
      u'name': u'Food & Restaurant' 
     }, 
     { 
      u'id': u'180699075298665', 
      u'name': u'Hospitality Service' 
     }, 
     { 
      u'id': u'164243073639257', 
      u'name': u'Hotel' 
     } 
    ], 
    u'name': u'Pearl Continental, Lahore' 
}, 
{ 
    u'category': u'Local business', 
    u'id': u'125484227592406', 
    u'location': 
    { 
     u'city': u'Lahore', 
     u'zip': u'', 
     u'country': u'Pakistan', 
     u'longitude': 74.417206363636, 
     u'state': u'', 
     u'street': u'masjad chok', 
     u'latitude': 31.612784545455 
    }, 

    u'category_list': 
    [ 
     { 
      u'id': u'150534008338515', 
      u'name': u'Barbecue Restaurant' 
     } 
    ], 
    u'name': u'Lahore Defence' 
}, 
.... 

결과를 데이터베이스에 저장하려고합니다. 나는 모른다 어떻게 그것을 할 수 있습니까? 많이 받아 주시면 고맙습니다.
데이터베이스 드라이버를 사용하여 데이터를 저장하고 검색하는 방법에 대한 지침이 필요합니다.

+1

당신은 문자열로 저장하고 당신이 그것을 꺼내 때, 그것을 읽고'json' 라이브러리를 사용하여 분석 할 수있다. –

+0

어떤 종류의 데이터베이스를 저장하려고합니까? – MooingRawr

+1

pickle을 사용하여 dict 정보를 serialize-deserialize 할 수 있습니다. – stuartnox

답변

0

액세스 가능한 데이터베이스 서버가 있어야합니다. 로컬로 설정하거나 수단이 있다면 원격으로 설정하십시오. 질문에 첨부 한 이미지는 Windows 터미널처럼 보입니다. 따라서 Windows 용 MySQL 커뮤니티 서버 here을 다운로드하십시오.

설정은 아주 간단해야합니다. 로그인 자격증 명을 유지하십시오 (가장 일반적으로 사용되는 -> username : root, password : root). 원하는 비밀번호와 비밀번호를 묻는 메시지가 나타납니다.

서버가 가동되어 실행 중일 때 기본값으로 127.0.0.1:3306에서 사용할 수 있습니다. 이제 MySQL에 대한 경험이 있다면 데이터가 들어갈 수있는 테이블이있는 기본 데이터베이스를 설정하는 방법을 알게 될 것입니다. (사용자가 가지고 있다고 가정합니다.)

일단 실행되면 설치하십시오. pip install MySQL-python을 실행하여 파이썬을위한 mysql (이것은 내가 알고있는 한 파이썬 2.7에서 작동한다. 파이썬 3+에서는 pip install mysqlclient을 사용한다). 이렇게하면 코드에서 사용할 수있는 파이썬 라이브러리가 설치됩니다. 코드 상단에 선택한 라이브러리에 대한 import 문을 다음과 같이 추가하십시오. import <library_name>.

당신이 어떤 파이썬 버전을 사용하고 있는지 알고 있기 때문에 정확한 코드를 제공 할 수 없지만, 어느 것을 선택하든, 그것을 사용하는 방법에 대한 문서가 있습니다.

그것은 다음 단계에 있습니다 :

  1. 는 mysqlclient A를 데이터베이스 연결 세부 사항을 추가합니다. 주소 (localhost : 3306, ...) b. 사용자 이름 (루트, ...) c. 암호 (루트, ...) d. 데이터베이스 _ (your_database_name)
  2. 변수
  3. 에 커서 실행에서 (고객 즉, SELECT *에게)
  4. 커서에 SQL 문을 추가
  5. 장소 결과를 데이터베이스 테이블을 통과 할 수있는 커서 객체를 생성
  6. 해피 일
+0

이것은 그가 원하는 것이 아닙니다. 그리고 잘못된 형식의 JSON은 중첩 된 네이티브 dicts/lists로 인쇄됩니다. –

+0

그들은 네이티브 네이티브 컬렉션이라는 것을 알고 있지만 태그에'json'을 포함 시켰기 때문에 이것이 그의 목표라고 가정했습니다. 그의 질문은 데이터베이스 드라이버를 사용하여 데이터를 저장하는 방법 또는 데이터를 저장하고 손실을 검색하는 방법에 대한 지침이 필요하다는 것을 의미 할 수 있습니다. 나는 후자에 대한 답을 썼다. –

+0

@TomNijs 그래, 나는 그것이 올바른 형식이 아니라는 것을 알았다. 내가 일하려고하는 새내기 일 때. 그래서 데이터베이스 드라이버를 사용하여 데이터를 저장하는 방법 또는 데이터를 저장하는 방법과 위의 설명에서 위에서 언급 한대로 데이터를 검색하는 방법이 필요합니다. –

관련 문제