您的位置:首页 > 编程语言 > Python开发

Python常用模块学习(二)

2017-11-17 20:45 387 查看
1.json模块:主要用于将数据解码或者编码为python对象,主要有dumps(),dump(),loads(),load()

import json #json模块
import demjson

class jsonTest(object):
def jsontest(self):
data = {"a":"1", "d":"2", "c":"3", u"中国":u"你好!"}
new_data_to_python = json.dumps(data, skipkeys=False,ensure_ascii=False, indent=4, separators=(',',':'), encoding='utf-8', sort_keys=True)
print new_data_to_python
#返回
# {
#     "a":1,
#     "c":3,
#     "d":2,
#     "中国":"你好!"
# # }
new_data_to_json = json.loads(new_data_to_python)
print new_data_to_json[u"中国"] #返回 “你好!”
list_data = [1,2,3,4]
list_data_dumps = json.dumps(list_data)  #把python对象编码为json
list_data_loads = json.loads(list_data_dumps)  #把json对象解码为python对象
print list_data_dumps[0] #返回 [ ,因为把list编码为str
print list_data_loads[0] #返回 1 ,因为把str解码为list
json.dump(data,open('db.txt','w')) #把data中的数据编码后写入db.txt 文件中
data_read = json.load(open('db.txt','r'))  #读取 db.txt 文件中的数据解码为python对象
print demjson.encode(data_read) #返回 <type 'dict'>

if __name__ == '__main__':
Json = jsonTest()
Json.jsontest()

2.requests模块:发起http网络请求,支持get,post,put,delete,options..方式,并且有函数方法确认请求的状态码,返回的头部信息等等
import requests

class RequestTest(object):
def request_test(self):
request_get = requests.get(url='http://127.0.0.1')  #发起http的get请求,想要获取得到服务器返回数据
request_post = requests.post(url='http://127.0.0.1') #发起http的post请求,主要目的为向服务器提交数据
request_put = requests.put(url='http://127.0.0.1') #发起http的put请求,主要向服务器创送数据以取代指定的文档内容
request_delete = requests.delete(url='http://127.0.0.1')  #发起http的delete请求,请求服务器删除指定的页面
request_head = requests.head(url='http://127.0.0.1')  #发起head请求,请求网页的首部
request_options = requests.options(url='http://127.0.0.1') #发起http的options请求,允许客户端查看服务器的性能
#上面的请求方式,对于web一般是支持get和post,还可以带参数进行
print request_get.status_code  #返回请求网站状态码,返回 200 (2XX代表成功,3XX代表重定向,4XX代表客户端问题,5XX代表服务器中出现错误)
print request_post.status_code   #返回405,代表用来访问本页面的 HTTP post方法不被允许
print request_get.url  #返回请求网站的url,返回 http://127.0.0.1/
print request_get.text  #返回解码后的网页数据 返回html文本数据
print request_get.cookies
print request_get.headers #返回相应头部信息

if __name__ == '__main__':
requesttest = RequestTest()
requesttest.request_test()

3.paramiko模块:这个模块我是第一次用,发现也是一个神奇的模块,它是遵循SSH2协议,支持加密和认证的方式进行远程服务器的连接,可以远程操作服务器文件,上传,下载文件。正好连接青云的那台机器进行学习
import paramiko,os

class ParamikoTest(object):
def paramikotest(self):
ssh = paramiko.SSHClient()  #创建ssh对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy) #允许不在know_host文件中的主机
ssh.connect(hostname='100.129.48.4',port=5022,username='root',password='Pass1234')  #传入相关参数连接服务器
# a,b,c = [1,2,3] ---> a=1,b=2,c=3
stdin,stdout,stderr = ssh.exec_command('ls \n pwd,') #执行对服务器指令的操作,三个指令:返回服务器root下面的所有文件,回车,一个错误指令。
result = stdout.read() #返回正常输出信息
result_err = stderr.read()  #返回错误指令信息
print result,result_err
ssh.close() #关闭连接

#ssh的transport变量,另外一种连接方式
transport = paramiko.Transport(('100.129.48.4',5022))
transport.connect(username='root',password='Pass1234')
ssh_transport = paramiko.SSHClient()
ssh_transport._transport = transport
stdin,stdout,stderr = ssh_transport.exec_command('df') #执行command指令,显示文件系统已经使用的内存以及还剩余的内存相关信息
print stdout.read()
ssh_transport.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python