urlparse模块和json模块详解

urlparse

urlparse主要是URL的分解和拼接,分析出URL中的各项参数,其主要的函数如下

urlparse

主要将url分解成6个片段,返回一个包括6个片段的对象

  • scheme:协议
  • netloc:服务器地址
  • path:服务器的相对地址
  • params:参数
  • query:查询条件
  • fragment:片段
import urlparse
url=urlparse.urlparse('http://blog.csdn.net/pupoqian3720/name=hou')
print url

# 结果
ParseResult(scheme='http', netloc='blog.csdn.net', path='/pupoqian3720/name=hou', params='', query='', fragment='')
parse_qs
  • urlparse.parse_qs 返回字典
  • urlparse.parse_qsl 返回列表
import urlparse
url=urlparse.urlparse('http://blog.csdn.net/pupoqian3720/?name=hou')
print url.query
# 字典
query1 = urlparse.parse_qs(url.query)
print query1,type(query1)
# 列表
query2 = urlparse.parse_qsl(url.query)
print query2,type(query2)

# 结果
name=hou
{'name': ['hou']} <type 'dict'>
[('name', 'hou')] <type 'list'>
urlsplit

urlsplit和urlparse功能一样,都是分割,不同的是只分割为5部分

import urlparse
url=urlparse.urlsplit('http://blog.csdn.net/pupoqian3720/?name=hou')
print url

# 结果
SplitResult(scheme='http', netloc='blog.csdn.net', path='/pupoqian3720/', query='name=hou', fragment='')
urljoin

相对的地址组合成一个url,对于输入没有限制,但是前面必须最后接‘/’,否则将不组合前面。

import urlparse
url=urlparse.urljoin('http://blog.csdn.net/pupoqian3720/','id=2')
print url

# 结果
http://blog.csdn.net/pupoqian3720/id=2

import urlparse
url=urlparse.urljoin('asda','id=2')
print url

#结果
id=2
urlunparse/urlunsplit

这个就是逆向操作,将几个部分进行拼接

import urlparse
url=urlparse.urlparse('http://blog.csdn.net/pupoqian3720/name=hou')
print url
raw_url = urlparse.urlunparse(url)
print raw_url

# 结果
ParseResult(scheme='http', netloc='blog.csdn.net', path='/pupoqian3720/name=hou', params='', query='', fragment='')
http://blog.csdn.net/pupoqian3720/name=hou
json

python中处理json文件,主要就是利用json.dumps()/json.dump()和json.loads()/json/load(),那这四个方法有什么区别呢,这里进行介绍

json.dumps()

主要将字典转换为字符串str

import json
dicts = {'name':'xiaoming','age':20}
print type(dicts)
print dicts
dict_change_str = json.dumps(dicts)
print type(dict_change_str)
print dict_change_str

# 结果
<type 'dict'>
{'age': 20, 'name': 'xiaoming'}
<type 'str'>
{"age": 20, "name": "xiaoming"}
json.loads()

主要将字符串str转换为字典

import json
dicts = '{"name":"xiaoming","age":20}'
print type(dicts)
print dicts
str_change_dict = json.loads(dicts)
print type(str_change_dict)
print str_change_dict

# 结果
'str'>
{"name":"xiaoming","age":20}
'dict'>
{u'age': 20, u'name': u'xiaoming'}
json.dump和json.load

这两个函数和上面两个方法其实功能一样,不一样的是这两个方法必须和文件关联,结果存入file中

  • json.dump将dict转成str,写入文件中
import json
dict = {'age': '12'}
file = open('test.json','w')
json.dump(dict,file)
  • json.load从文件中读入数据,转成dict
import json
file = open('test.json')
re = json.load(file)
print re,type(re)

# 结果
{u'age': u'12'} 'dict'>

你可能感兴趣的:(web,Python)