搜索

首页  >  问答  >  正文

python query_string转dict

有如下字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中文网2889 天前538

全部回复(5)我来回复

  • 黄舟

    黄舟2017-04-18 09:14:47

    这样就可以了

    1

    2

    3

    <code>>>> 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='}</code>

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:14:47

    然而加号本来就要转成空格的啊!

    就用 parse_qsl 就可以了

    回复
    0
  • 迷茫

    迷茫2017-04-18 09:14:47

    1

    2

    3

    4

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

     

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

    </code>

    我的水平也只能到这一步了

    回复
    0
  • ringa_lee

    ringa_lee2017-04-18 09:14:47

    雷雷

    回复
    0
  • 高洛峰

    高洛峰2017-04-18 09:14:47

    两点

    1. 如同 @hsfzxjy 所说, + 本就是转出空白+ 本就是轉出空白

    2. 如果要轉成字典, 一開始用 parse_qs

    如果要转成字典, 一开始用 parse_qs 就好, 这会直接转成 dict, 不必手动再把 list 转过去

    🎜我回答过的问题🎜: Python-QA🎜

    回复
    0
  • 取消回复