【python】python常用函数
urlencode与urldecode
当url中包含中文或者参数包含中文,需要对中文或者特殊字符(/、&)做编码转换。
urlencode的本质:把字符串转为gbk编码,再把\x替换成%。如果终端是utf8编码的,需要把结果再转成utf8输出,否则会乱码。
urlencode
urllib库里面的urlencode函数,可以把key-value健值对的key、value都进行urlencode并转换成a=1&b=2的字符串。
#key-value健值对
>>> from urllib import urlencode
>>> data={'a':'a1','b':'中文'}
>>> print urlencode(data)
a=a1&b=%E4%B8%AD%E6%96%87
>>> data={'a':'a1','b测试':'中文'}
>>> print urlencode(data)
a=a1&b%E6%B5%8B%E8%AF%95=%E4%B8%AD%E6%96%87
urllib库里面的quote函数,可以针对单个字符串进行urlencode转换。
#string
>>> from urllib import quote
>>> data="测试"
>>> print quote(data)
%E6%B5%8B%E8%AF%95
urldecode
urllib只提供了unquote()函数。
>>> from urllib import unquote
>>> unquote("%E6%B5%8B%E8%AF%95")
'\xe6\xb5\x8b\xe8\xaf\x95'
>>> print unquote("%E6%B5%8B%E8%AF%95")
测试
>>>
json处理
两个函数:
| 函数 | 描述 |
|---|---|
| json.dumps | 将python对象编码成JSON字符串(对象->字符串) |
| json.loads | 将已经编码的json字符串解码为Python对象(字符串->对象) |
json.dumps
语法:json.dumps(data, sort_keys=True, indent=4,separators=(self.item_separator, self.key_separator))
>>> import json
>>> data={"a":"a1","b":"b1"}
>>> jsonstr=json.dumps(data)
>>> print jsonstr
{"a": "a1", "b": "b1"}
#输出格式化
>>> print json.dumps(data, sort_keys=True, indent=4,separators=(",",":"))
{
"a":"a1",
"b":"b1"
}
>>>
python原始类型向json类型的转换对照表:
| Python | JSON |
|---|---|
| dict | object |
| list,tuple | array |
| str,unicode | string |
| int,long,float | number |
| True | true |
| False | false |
| None | null |
json.loads
json.loads——返回Python字段的数据类型
>>> import json
>>> jsonstr='{"a":"a1","b":"b1"}'
>>> print json.loads(jsonstr)
{u'a': u'a1', u'b': u'b1'}
>>> jsonstr='{"a":"a1","b":null,"c":false,"d":{"aa":"aa1","bb":"bb1"}}'
>>> print json.loads(jsonstr)
{u'a': u'a1', u'c': False, u'b': None, u'd': {u'aa': u'aa1', u'bb': u'bb1'}}
>>> jsonstr='[{"a":"a1"},{"b":"b2"}]'
>>> print json.loads(jsonstr)
[{u'a': u'a1'}, {u'b': u'b2'}]
json类型转换为python类型的对照表
| JSON | Python |
|---|---|
| object | dict |
| array | list |
| string | unicode |
| number(int) | int,long |
| number(real) | float |
| true | True |
| false | False |
| null | None |
结论:print只能输出python认识的数据类型,python.dumps才可以格式化输出。
计算字符串md5
方法一:使用md5包
import md5
def calMd5(signdata,signkey,joiner=""):
signdata=signdata+joiner+""+signkey
m=md5.new(signdata)
sign = m.hexdigest()
return sign
方法二:使用hashlib包
import hashlib
def calHashMd5(signdata,signkey,joiner=""):
signdata=signdata+joiner+""+signkey
m=hashlib.md5(signdata)
sign = m.hexdigest()
return sign
计算hmacsha1
hmac:密钥相关的哈希运算消息认证码,hmac运算利用哈希算法(可以是MD5或者SHA-1),以一个密钥和一个消息为输入,生成一个消息摘要作为输出。
作用:
(1)验证接受的授权数据和认证数据;
(2)确认接受到的命令请求是已经授权的请求且传送过程没有被篡改
import hmac
import base64
def hmacSha1WithBase64(signdata,signkey):
sign = hmac.new(signkey, signdata,sha1).digest()
sign = base64.b64encode(sign)
return sign
字符串拼接
from collections import OrderedDict
def composeStr(data,joiner,withkey=True,key_value_joiner="="):
data = OrderedDict(sorted(data.items(), key=lambda t:t[0]))
if withkey :
signdata = joiner.join([key_value_joiner.join((str(key), str(elem))) for key, elem in data.iteritems()])
else :
signdata= joiner.join([elem for key, elem in data.items()])
return signdata
【python】python常用函数的更多相关文章
- Python 字符串常用函数
操作字符串的常用函数 函数 描述(返回值) str.capitalize() 将字符串的第一个字符大写 str.title() 返回标题化的字符串,即每个单词的首字母都大写 str.upper() 全 ...
- Python—字符串常用函数
Python-字符串常用字符串 字符串是一种表示文本的数据类型,使用单引号和双引号及三引号表示 访问字符串中的值字符串的每个字符都对应一个下标,下标编号是从0开始 转义字符字符串的格式化输出切片常用函 ...
- python字符串 常用函数 格式化字符串 字符串替换 制表符 换行符 删除空白 国际货币格式
# 字符串常用函数# 转大写print('bmw'.upper()) # BMW# 转小写print('BMW'.lower()) # bmw# 首字母大写print('how aae you ?'. ...
- python中常用函数整理
1.map map是python内置的高阶函数,它接收一个函数和一个列表,函数依次作用在列表的每个元素上,返回一个可迭代map对象. class map(object): ""&q ...
- Python量化常用函数
# -*- coding: utf-8 -*- # @Author: fangbei # @Date: 2017-08-26 # @Original: price_str = '30.14, 29.5 ...
- 转 python 的常用函数replace, split(),enumerate() 函数
1.execmd = "su - " + ou + " -c 'sqlplus / as sysdba << EOF\n " + execmd3 + ...
- python—各种常用函数及库
列表list1.append(x) 将x添加到列表末尾 list1.sort() 对列表元素排序 list1.reverse() 将 ...
- Python string常用函数
2017-07-03 23:26:08 1..replace(self, old, new, count=-1) replace()函数将旧字符串替换为新字符串,最后一个参数count为可选项,表示替 ...
- selenium2.0关于python的常用函数
转: 新建实例driver = webdriver.Chrome() 1.获取当前页面的Url函数 方法:current_url 实例: driver.current_url 2.获取元素坐标 方法: ...
- python字符串常用函数
# 索引与切片 *** capitalize() **首字母大写 upper() lower() *** 大写和小写函数 startswith endswith *** 判断以‘’字母’开 ...
随机推荐
- Zookeeper--0200--安装与集群搭建、常用命令、客户端工具
看这里,http://www.cnblogs.com/lihaoyang/p/8358153.html 1,先使用可视化客户端软件 ZooInspector 连接上集群中的一个节点,看下zk的结构: ...
- Java实现Socket通信
一对一通信: 服务器端: public class ServerDemo { public static void main(String[] args) { ServerSocket serverS ...
- html中引入调用另一个公用html模板文件的方法
html中引入调用另一个公用html模板文件的方法 https://www.w3h5.com/post/53.html 这里我使用jquery的方法 <body> <div id=& ...
- 全网最详细的PLSQL Developer + Oracle client的客户端 或者 PLSQL Developer + Oracle server服务端的下载与安装过程(图文详解)
不多说,直接上干货! 环境说明: 本地没有安装Oracle服务端,oracle服务端64位,是远程连接,因此本地配置PLSQL Developer64位. Oracle database使用在本机部署 ...
- 百度&高德地图小区景点边界轮廓实现
经常的我们在使用地图功能时,会发现在选择一个小区或者一个热门景点的时候,地图上面会给出其边界轮廓,能够方便我们知道其范围大小,有时候在我们使用地图组件的时候,也会面临着类似的需求.比如在地图上面标识出 ...
- [Python学习笔记-003] 使用PyOTP获取基于OTOP算法的动态口令
建立安全的VPN连接,不仅需要输入用户名和密码,还需要输入动态口令(token).作为一个懒人,我更喜欢什么手工输入都不需要,既不需要输入password,也不需要输入token.也就是说,只需一个命 ...
- python get请求
#!/usr/bin/python #-*- coding:UTF-8 -*-#coding=utf-8 import requests import time import hashlib impo ...
- C# 1.0 到 4.0 的进化 1
定义一个产品类 Product C# 1 using System; using System.Collections; namespace C1 { public class Product { s ...
- RocketMQ专题2:三种常用生产消费方式(顺序、广播、定时)以及顺序消费源码探究
顺序.广播.定时任务 前插 在进行常用的三种消息类型例子展示的时候,我们先来说一说RocketMQ的几个重要概念: PullConsumer与PushConsumer:主要区别在于Pull与Pus ...
- Infopath 2010 接收SQL Server数据
Infopath2010为我们提供了多种接收数据的方式,今天我来讲讲里面其中的一种直接读取SQL Server数据库表数据方法(高阶者的下面可以略省,只针对入门者). 1.选择数据库(SQL) 2.选 ...