# -*- coding: utf-8 -*-
import urllib.request
import urllib.parse
import json
import logging
import time
# general json object that can bind any fields but also act as a dict.
# a json class inhert dict class which can use d['key'] or d.key to get
class JsonDict(dict):
def __getattr__(self, attr):
return self[attr]
def __setattr__(self, attr, value):
self[attr] = value
# convert json object to python object.
def _obj_hook(paris):
odict = JsonDict()
for key, value in paris.items():
odict[str(key)] = value
return odict
# Encode parameters
def _encode_params(**kw):
args = []
for key, value in kw.items():
para = value.encode('utf-8') if isinstance(value, str) else str(value)
args.append('%s=%s' % (key, urllib.parse.quote(para)))
return '&'.join(args)
# Build a multipart/form-data body with generated random boundary.
def _encode_multipart(**kw):
# 'encode mulyipart data'
boundary = '----------%s' % hex(int(time.time() * 1000))
data = []
for key, value in kw.items():
data.append('--%s' % boundary)
if hasattr(value, 'read'):
filename = getattr(value, 'name', '')
name = filename.rfind('.')
ext = filename[name:].lower() if name != (-1) else ""
content = value.read()
content = content.decode('ISO-8859-1')
sinaweibopy3模块调用微博接口# -*- coding: utf-8 -*-import urllib.requestimport urllib.parseimport jsonimport loggingimport time# general json object that can bind any fields but also act as a dict.# a json class inhert dict class which can use d['key']