设为首页 加入收藏

TOP

python模块基础之json,requeste,xml,configparser,logging,subprocess,shutil。(一)
2017-09-30 16:10:26 】 浏览:8624
Tags:python 模块 基础 json requeste xml configparser logging subprocess shutil

1、json模块

  json     用于【字符串】和 【python基本数据类型】 间进行转换(可用于不同语言之前转换),json.loads,将字符串转成python的基本数据类型,json.dumps将python的基本数据类型转换成字符串,用法之前和pickle相同,值得一提的是,loads的时候,如果转换之后数据内部如果有多个元素要用双引号,最外边用单引号(比如列表等),以此区分整个数据的和数据元素的一个边界,否则容易混乱。

2、requests模块简介安装

Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。

urllib发送get请求

import urllib.request


f = urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')
result = f.read().decode('utf-8')

  url发送带请求头的get

import urllib.request

req = urllib.request.Request('http://www.example.com/')
req.add_header('Referer', 'http://www.python.org/')
r = urllib.request.urlopen(req)

result = f.read().decode('utf-8')

  Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。

这是个三方模块,用来发送http请求,默认两种安装方法,源码安装和pip安装,本身安装pip也是依赖setuptools安装但是pycharm3.5环境默认带有pip这就省去很多事情,如果直接pip install xxx基于windows64位系统一样会出问题,具体问题和解决方法如下

源码安装,先去下载,解压,然后命令行下进入该目录对setup.py文件进行安装,执行python setup.py install 进行安装。

requests发get请求

# 1、无参数实例
 
import requests
 
ret = requests.get('https://github.com/timeline.json')
 
print(ret.url)
print(ret.text)
 
 
 
# 2、有参数实例
 
import requests
 
payload = {'key1': 'value1', 'key2': 'value2'}
ret = requests.get("http://httpbin.org/get", params=payload)
 
print(ret.url)
print(ret.text)

  requests发送post请求

# 1、基本POST实例
 
import requests
 
payload = {'key1': 'value1', 'key2': 'value2'}
ret = requests.post("http://httpbin.org/post", data=payload)
 
print(ret.text)
 
 
# 2、发送请求头和数据实例
 
import requests
import json
 
url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'}
 
ret = requests.post(url, data=json.dumps(payload), headers=headers)
 
print(ret.text)
print(ret.cookies)

  其他请求

requests.get(url, params=None, **kwargs)
requests.post(url, data=None, json=None, **kwargs)
requests.put(url, data=None, **kwargs)
requests.head(url, **kwargs)
requests.delete(url, **kwargs)
requests.patch(url, data=None, **kwargs)
requests.options(url, **kwargs)
 
# 以上方法均是在此方法的基础上构建
requests.request(method, url, **kwargs)

  更多requests模块相关的文档见:http://cn.python-requests.org/zh_CN/latest/

xml与requeste实例之检测qq是否在线

import urllib
import requests
from xml.etree import ElementTree as ET

# 使用内置模块urllib发送HTTP请求,或者XML格式内容
"""
f = urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')
result = f.read().decode('utf-8')
"""


# 使用第三方模块requests发送HTTP请求,或者XML格式内容
r = requests.get('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')
result = r.text

# 解析XML格式内容
node = ET.XML(result)

# 获取内容
if node.text == "Y":
    print("在线")
else:
    print("离线")
#代码没问题,但是检测并不正确,所有注册过的qq都为Y

  实例之获取列车信息

import urllib
import requests
from xml.etree import ElementTree as ET

# 使用内置模块urllib发送HTTP请求,或
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇[Django]用户权限学习系列之设计.. 下一篇[Django]用户权限学习系列之权限..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目