使用python调用新浪微博接口

2022-04-10 0 723

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

使用python调用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对象 <cStringIO.StringI object at 0x1006aed80>
  
 # 注 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

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Python教程 使用python调用新浪微博接口 http://www.20zxx.cn/375241/xuexijiaocheng/python.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务