最近在处理和招行的数据对接,遇到一个很棘手的问题:招行回调我们的数据接口,但是招行给的文档里面显示招行提供的数据格式是formdata格式的,格式如下:
request_content=%7B%22merId%22%3A%22308999150570002%22%2C%22openId%22%3A%22o0xFV4wXFttZiHplNCvq9GGm8lrM%22%2C%22orderId%22%3A%2214233022%22%2C%22cmbOrderId%22%3A%22003219052720175970907079%22%2C%22userId%22%3A%22N002864744%22%2C%22txnAmt%22%3A%221%22%2C%22currencyCode%22%3A%22156%22%2C%22payType%22%3A%22WX%22%2C%22txnTime%22%3A%2220190527201844%22%2C%22endDate%22%3A%2220190527%22%2C%22endTime%22%3A%22201843%22%2C%22dscAmt%22%3A%220%22%7D&sign=MCMCKUgAv%2FIUIL3ceQ3gaFhUHPN4LMb8xBG2zOUaurdpciSFmCnJAD3SpnEaCIGTl3XhKsXaK%2FqWVxaZk5x%2BPt5%2F5BKypqLrmyOiqsq45H8%2FSyOYLE9VKPWL02YztJcFVNNNrOmeLOzcWbxqt7RPhgSanyZ9pXxXIBvqA9Uk91G2NN6TxP5gxcaTKMWAidLxhyYLiEO0XDRZZCDTg%2BkW1WNH2imjpGSlfR%2BhwI0lcMzdH7QRDDyB1jEKrNr%2Fcuy12mC2MMX61pFGzh5GSoO2s%2FS1eoPf9vSdPzrrBqqshDss3yBRWlPLa6GnTw9oxJ%2F7uQVizaur960rW7UOcsOzYg%3D%3D&encoding=UTF-8&version=0.0.1&signMethod=01
刚开始看到这一串数据的时候,我表示一脸懵逼,查了半天资料基本都是上传数据的时候如何转成formdata的,一无所获,最后我把这个问题抛到了一个技术群里面,没过多久 就收到了他们的回复,然后一试 果然可以,不然人家总说:读万卷书,不如行万里路,行万里路,不如高手指路。具体做法如何呢?如下:
from urllib.parse import unquote
str1 = "request_content=%7B%22merId%22%3A%22308999150570002%22%2C%22openId%22%3A%22o0xFV4wXFttZiHplNCvq9GGm8lrM%22%2C%22orderId%22%3A%2214233022%22%2C%22cmbOrderId%22%3A%22003219052720175970907079%22%2C%22userId%22%3A%22N002864744%22%2C%22txnAmt%22%3A%221%22%2C%22currencyCode%22%3A%22156%22%2C%22payType%22%3A%22WX%22%2C%22txnTime%22%3A%2220190527201844%22%2C%22endDate%22%3A%2220190527%22%2C%22endTime%22%3A%22201843%22%2C%22dscAmt%22%3A%220%22%7D&sign=MCMCKUgAv%2FIUIL3ceQ3gaFhUHPN4LMb8xBG2zOUaurdpciSFmCnJAD3SpnEaCIGTl3XhKsXaK%2FqWVxaZk5x%2BPt5%2F5BKypqLrmyOiqsq45H8%2FSyOYLE9VKPWL02YztJcFVNNNrOmeLOzcWbxqt7RPhgSanyZ9pXxXIBvqA9Uk91G2NN6TxP5gxcaTKMWAidLxhyYLiEO0XDRZZCDTg%2BkW1WNH2imjpGSlfR%2BhwI0lcMzdH7QRDDyB1jEKrNr%2Fcuy12mC2MMX61pFGzh5GSoO2s%2FS1eoPf9vSdPzrrBqqshDss3yBRWlPLa6GnTw9oxJ%2F7uQVizaur960rW7UOcsOzYg%3D%3D&encoding=UTF-8&version=0.0.1&signMethod=01"
lis1 = unquote(str1)
pay_dict = {}
for item in lis1:
str2 = item.split('=')
pay_dict[str2[0]] = str2[1]
print(pay_dict)
这样就实现了把formdata格式的字符串,转换成了python中常见的字典类型的格式了。
----------------------------------------------------------------------------------end ----------------------------------------------------------------------------------