【问题标题】:Python- urllib.urlencode: parse dictionary items into stringPython- urllib.urlencode:将字典项解析为字符串
【发布时间】:2017-10-05 11:21:30
【问题描述】:

我需要像这样编码字典项

data = OrderedDict([('mID', ['54a309ae1c61be23aba0da54', '54a309ae1c61be23aba0da63'])])

转换成这样格式的字符串

mID=[54a309ae1c61be23aba0da54,54a309ae1c61be23aba0da63]

当我使用url_values = urllib.urlencode(data) 我得到mID=%5B%2754a309ae1c61be23aba0da54%27%2C+%2754a309ae1c61be23aba0da63%27%5D

我能做什么?

【问题讨论】:

  • 括号内的部分见str.join(),全文见str.format()

标签: python urllib ordereddictionary


【解决方案1】:

可能是:

"{}=[{}]".format("mID",",".join(data["mID"]))

【讨论】:

  • 请阅读有关 sting 格式的信息并加入 python @A_Matar
【解决方案2】:

带有用于 Python v3.x 的 urllib.parse 模块:

import collections
from urllib import parse

data = collections.OrderedDict([('mID', ['54a309ae1c61be23aba0da54', '54a309ae1c61be23aba0da63'])])
urlenc_str = parse.unquote_plus(parse.urlencode(data))
urlenc_str = urlenc_str.replace("'", '').replace(' ', '')

print(urlenc_str)

输出:

mID=[54a309ae1c61be23aba0da54,54a309ae1c61be23aba0da63]

检查类型:

print(type(urlenc_str))    #  <class 'str'>

【讨论】:

  • 我正在使用 python2 并且在尝试导入解析时它给了我ImportError: cannot import name parse
  • @A_Matar,恐怕是为 Python 3.x 准备的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多