python query_string转dict
PHP中文网
PHP中文网 2017-04-18 09:12:47
0
5
531

有如下字query符串
s = "data=Ap/8ime+SAJmU=&a=dfasfds+fsdsaf&c=fas1mk342412"
需要转成dict
{'data': 'Ap/8ime+SAJmU=', 'a': 'dfasfds+fsdsaf', 'c': 'fas1mk342412'}

试过dict(urlparse.parse_qsl(s)),然而'+'会转成空格。
然后试过split('&'),再split('='),然而'data'value中包含'='。汗啊-_-!!
求一个高效的方法。

PHP中文网
PHP中文网

认证0级讲师

membalas semua(5)
黄舟

Itu sahaja

>>> s="data=Ap/8ime+SAJmU=&a=dfasfds+fsdsaf&c=fas1mk342412"
>>> dict([x.split('=',1) for x in s.split('&')])
 {'a': 'dfasfds+fsdsaf', 'c': 'fas1mk342412', 'data': 'Ap/8ime+SAJmU='}
伊谢尔伦

Walau bagaimanapun, tanda tambah harus ditukar menjadi ruang!

Hanya gunakan parse_qsl

迷茫
List=map(list,zip(*[i.split('=',1) for i in s.split('&')]))

dict(zip(List[0],List[1]))

Tahap saya hanya boleh pergi setakat ini

左手右手慢动作
import re
s = "data=Ap/8ime+SAJmU=&a=dfasfds+fsdsaf&c=fas1mk342412"
d = dict(re.findall(r"([^=&]+)=([^=&]*)",s))
print d
小葫芦

Dua mata

  1. Seperti yang @hsfzxjy katakan, + hanyalah penukaran kosong

  2. Jika anda ingin menukar kepada kamus, hanya gunakan parse_qs pada permulaan Ini akan menukarnya terus kepada dict Anda tidak perlu menukar senarai

  3. secara manual

Soalan yang saya jawab: Python-QA

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan