Python常用模块学习(二)

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) #返回 

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,python)