gpt4 book ai didi

python - 为什么不能用urlencode编码json格式的数据?

转载 作者:太空狗 更新时间:2023-10-29 18:14:20 26 4
gpt4 key购买 nike

我对 python 2.7 中的 urlencode 有疑问:

>>> import urllib
>>> import json
>>> urllib.urlencode(json.dumps({'title':"hello world!",'anonymous':False,'needautocategory':True}))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/urllib.py", line 1280, in urlencode
raise TypeError
TypeError: not a valid non-string sequence or mapping object

最佳答案

urlencode可以编码字典,但不能编码字符串。 json.dumps 的输出是一个字符串。

根据你想要的输出,要么不在 JSON 中编码字典:

>>> urllib.urlencode({'title':"hello world!",'anonymous':False,'needautocategory':True})
'needautocategory=True&anonymous=False&title=hello+world%EF%BC%81'

或者把整个东西包装在一个字典中:

>>> urllib.urlencode({'data': json.dumps({'title':"hello world!",'anonymous':False,'needautocategory':True})})
'data=%7B%22needautocategory%22%3A+true%2C+%22anonymous%22%3A+false%2C+%22title%22%3A+%22hello+world%5Cuff01%22%7D'

或使用 quote_plus()相反(urlencode 使用 quote_plus 作为键和值):

>>> urllib.quote_plus(json.dumps({'title':"hello world!",'anonymous':False,'needautocategory':True}))
'%7B%22needautocategory%22%3A+true%2C+%22anonymous%22%3A+false%2C+%22title%22%3A+%22hello+world%5Cuff01%22%7D'

关于python - 为什么不能用urlencode编码json格式的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8293113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com