• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用python调用新浪微博接口

python 搞代码 4年前 (2022-01-09) 26次浏览 已收录 0个评论

微博很火啊,那python是不是可以调用微博的api做一个小应用呢?答案是:必须可以,哈哈

使用python<a>本文来源gao($daima.com搞@代@#码(网</a>调用weibo api    # 调用的url地址  此为获取某人的个人信息的api  http://open.weibo.com/wiki/2/users/show the_url = 'https://api.weibo.com/2/users/show.json?uid=105729xxxx&access_token=2.xxx__YJBzk8g4Ddfd33f10237XXXXX'    http_body = None    # 发送请求并读取返回 返回的内容是真个html源代码,或者json数据,可以通过文件输出或者包一层repr()来查看内容 req = urllib2.Request(the_url, data=http_body)    #当然也可以用此来发送请求,并读取返回的内容是真个html源代码,可以通过文件输出或者包一层repr()来查看内容 req = urllib2.Request("http://www.baidu.com", data=http_body)    resp = urllib2.urlopen(req) print repr(resp.read())          import json # 原配json工具 json.loads(resp.read(), object_hook=_obj_hook)       io = StringIO('["streaming API"]') print io.getvalue() # 输出为 ["streaming API"] io输出为一个StringIO对象     # 注 json工具 提供load和loads2个方法 json.load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])    json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])    其中fp 按照官方的解释[http://docs.python.org/2/glossary.html#term-file-object]是面向文件的系统,或者那种提供.read(),.write()方法的对象,比如上面的StringIO s 为普通的str或者unicode,相应json数据于python数据的对应如下    [http://docs.python.org/2/library/json.html?highlight=object_hook#json-to-py-table] JSON    Python object    dict array    list string    unicode number (int)    int, long number (real)    float true    True false    False null    None    # 转换json数据 如果json数据如此 {     "ip_limit": 1000,     "limit_time_unit": "HOURS",     "remaining_ip_hits": 1000,     "remaining_user_hits": 146,     "reset_time": "2013-04-19 15:00:00",     "reset_time_in_seconds": 3286,     "user_limit": 150 } # 关于 object_hook 非必选函数 用于替换原本钓鱼json.loads返回的一个dict, # json.loads返回的dict如果遇到一个不存在的量 比如"abc" 则会报错, # 于是用object_hook 返回一个自己定义的dict 让他在遇到"abc"这个不存在的变量时不直接反错 # 而是try catch一下 返回None  更稳定    def _parse_json(s):     ' parse str into JsonDict '        def _obj_hook(pairs):         ' convert json object to python object '         o = JsonDict()         # print pairs['list_id']         print 'text' in pairs         if 'text' in pairs:             # it can output utf8             print pairs['text']         # ---         for k, v in pairs.iteritems():             o[str(k)] = v         return o     #loads  is  different from load     return json.loads(s, object_hook=_obj_hook)    class JsonDict(dict):     ' general json object that allows attributes to be bound to and also behaves like a dict '        def __getattr__(self, attr):         try:             return self[attr]         except KeyError:             raise AttributeError(r"'JsonDict' object has no attribute '%s'" % attr)        def __setattr__(self, attr, value):         self[attr] = value    # 此 JsonDict 是dict(字典对象)的子类 它重写了 取索引的方法 __getattr__ 和 __setattr__    # 这里获取dict里的数据有个技巧 在获取JsonDict的对象时有2中方法 d1 = JsonDict();    d1['a'] = 'strra' print d1['a'] print d1.get('a') # 此 aaaa 并不在dict中 print d1.get('aaaa')   # None print d1['aaaa']   # key error~    # 使用get获取dict里的数据 遇到空的数据的话 可以避免error的产生 自动转成None

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用python调用新浪微博接口
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址