如何将Dict类型结果存储在数据库中?

时间:2016-09-02 17:22:49

标签: python json facebook-graph-api

我在python中使用 facebook.graphAPI 搜索某个特定城市的餐馆。它返回的结果是 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 个答案:

答案 0 :(得分:0)

首先拥有一个可访问的数据库服务器。在本地设置一个或者如果你有手段,可以远程设置一个。 您附加到问题的图像看起来像一个Windows终端,因此下载MySQL社区服务器for windows here

设置应该相当直接。 保持您的登录凭据(最常用的是 - >用户名:root,密码:root)安全的地方。系统会询问您是否以及您要使用的密码。

当服务器启动并运行时,默认情况下它将在127.0.0.1:3306上可用。现在,如果您有一些MySQL经验,那么您将知道如何设置一个基本数据库,其中包含一些数据表。(我假设您有。)

一旦启动并运行,通过执行安装mysql for python pip install MySQL-python(据我所知,这适用于Python 2.7,对{3}使用pip install mysqlclient)。这将安装一个可以在代码中使用的python库。只需为您在代码顶部选择的库添加import语句:import <library_name>

现在我无法给你准确的代码,因为我知道你知道哪个python版本,但无论你选择哪个,那里都会有文档如何使用它。

它将执行以下步骤:

  1. 将数据库连接详细信息添加到mysqlclient  一个。地址(localhost:3306,...)  湾用户名(root,...)  C。密码(root,...)  d。 database_name(your_database_name)
  2. 创建一个允许您遍历数据库表的游标对象
  3. 向游标添加SQL语句(即SELECT * FROM CUSTOMERS)
  4. 将光标执行的结果放入变量
  5. 快乐的日子