urllib模块中parse函数中的urlencode和quote_plus方法

本来只是向看一下quote_plus的作用,然后发现urlencode方法也是很方便的一个组合字符串的方法首先是介绍一下urlencode,他是将一些传入的元素使用&串联起来,效果如下:

>>>params = {
            "appid": 1,
            "mch_id": 1,
            "body": 1,
            "out_trade_no": 1,
            "total_fee": 1,
            "spbill_create_ip": 1,
            "notify_url": 1,
            "trade_type": 1,
            "nonce_str": 1
        }
>>>parse.urlencode(params)
‘appid=1&mch_id=1&body=1&out_trade_no=1&total_fee=1&spbill_create_ip=1&notify_url=1&trade_type=1&nonce_str=1‘

如果加以改造,就可以直接应到生成微信支付的拼接字符串当中了:

>>>parse.urlencode([(k, params[k]) for k in sorted(params)])
‘appid=1&body=1&mch_id=1&nonce_str=1&notify_url=1&out_trade_no=1&spbill_create_ip=1&total_fee=1&trade_type=1‘
>>>[(k, params[k]) for k in sorted(params)]
[(‘appid‘, 1), (‘body‘, 1), (‘mch_id‘, 1), (‘nonce_str‘, 1), (‘notify_url‘, 1), (‘out_trade_no‘, 1), (‘spbill_create_ip‘, 1), (‘total_fee‘, 1), (‘trade_type‘, 1)]

然后就是quote_plus了,使用了一下发现这个方法是将一些特殊的字符串转换为固定的一些符号字母数字组合,例如:

>>>parse.quote_plus(‘a&b/c‘)
‘a%26b%2Fc‘

其中的&和/都分别变为了%26b和%2F,还有更多的一些符号变化就先不去一一尝试了。

原文地址:https://www.cnblogs.com/zzy0306/p/8444614.html

时间: 2024-07-30 06:41:48

urllib模块中parse函数中的urlencode和quote_plus方法的相关文章

在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)

[cpp] view plain copy // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <crtdbg.h> /// 在C++工程中main函数之前跑代码的廉价方法 /// 利用全局变量可以赋可变初值的事实 /// mainCRTStartup() => _cin

软件测试中LoadRunner函数中的几个陷阱

软件测试 中 LoadRunner 函数中的几个陷阱 1.atof 在 loadrunner 中如果直接用 float f; f=atof("123.00"); lr _output_message("%f",f); 输出的结果会是1244128.00,根本不是我们想要的. 因为float,double型在不同的平台下长度不一样,所以在loadrunner 软件测试中LoadRunner函数中的几个陷阱 1.atof 在loadrunner中如果直接用 float

(转)在网页中JS函数自动执行常用三种方法

原文:http://blog.sina.com.cn/s/blog_6f6b4c3c0100nxx8.html 在网页中JS函数自动执行常用三种方法 在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT   LANGUAGE="JavaScript">   functionn MyAutoRun() {   //以下是您的函数的代码,请自行修改先! alert("函数自动执行哦!");   } </SCR

在网页中JS函数自动执行常用三种方法

在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT   LANGUAGE="JavaScript">   functionn MyAutoRun() {   //以下是您的函数的代码,请自行修改先! alert("函数自动执行哦!");   }  </SCRIPT> 下面,我们就针对上面的函数,让其在网页载入的时候自动运行! ①第一种方法 将如上代码改为: <SCRIPT   LANGUAG

c++中成员函数指针数组定义和初始化方法

实际项目中经常遇到很多类似操作,比如命令码对应执行函数等,对于此类操作,比较好的方式是使用const数组,将命令码和操作函数绑定在一起,通过查表方式找到操作函数,并执行操作函数.这样可以简化代码,降低复杂度,在c中这种方式很好实现,在c++中会稍微麻烦一些. 以串口命令解析执行为例,首先定义一个结构体,定义操作函数的指针类型: struct T_ShellInfo { string cmd; void (* DealFunc)(const vector<string> &vectStr

苹果浏览器Safari对JS函数库中newDate()函数中的参数的解析中不支持形如“2020-01-01”形式

苹果浏览器safari对new Date('1937-01-01')不支持,用.replace(/-/g, "/")函数替换掉中划线即可 如果不做处理,会报错:invalid date 本解决方案参考:http://stackoverflow.com/questions/4310953/invalid-date-in-safari

Javascript中的函数中的this值

看下面这段代码会在控制台上输出什么内容? 1 <script> 2 var url="fang.com"; 3 var obj={ 4 url:"soufun.com", 5 func:function(){ 6 return this.url; 7 } 8 }; 9 10 console.log((obj.func)()); 11 console.log((1&&obj.func)()) 12 </script> 答案是 1

php中eval函数的危害与正确禁用方法

转载地址:http://www.myhack58.com/Article/60/61/2014/50632.htmphp的eval函数并不是系统组件函数,因此我们在php.ini中使用disable_functions是无法禁止它的. 但是eval()对于php安全来说具有很大的杀伤力,因此一般不用的情况下为了防止类似如下的一句话木马入侵,需要禁止! <?php eval($_POST[cmd]);?> eval()使用范例: <?php$string = '杯子';$name = '咖

继承过程中对函数中this的认识

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 <script> 9 var a = { 10 x:10, 11 cc:function(z){ 12 return this