首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将此JSON数据转换为此URL格式?

如何将此JSON数据转换为此URL格式?
EN

Stack Overflow用户
提问于 2020-04-25 18:48:47
回答 2查看 27关注 0票数 0

我正在尝试将这些数据转换为URL格式(我不知道它的技术术语,但我想你知道我在问什么)这是正文数据:

代码语言:javascript
复制
body = {
        'dont-ask-for-email': 0,
        'action': 'submit_user_review',
        'post_id': 61341,
        'email': '',
        'subscribe': 1,
        'previous_hosting_id': '',
        'fb_token': '',
        'title': 'I suggest you guys to add more services',
        'summary': 'So far, so good. Quick response, better prices and effective support. All a com>
        'score_reliability': 10,
        'score_pricing': 10,
        'score_userfriendly': 10,
        'score_support': 10,
        'score_features': 10,
        'hosting_type': 'dedicated-server',
        'author': 'Andrew McCarthy',
        'social_link': '',
        'site': '',
        'screenshot[image][]': '',
        'screenshot[description][]': '',
        'user_data_process_agreement': 1,
        'user_email_popup': '',
        'subscribe_popup': 1,
        'email_asked': 0
}

我需要这种格式来运行我的python脚本

代码语言:javascript
复制
jsondata = 'dont-ask-for-email=0&action=submit_user_review&post_id=61341&email=&subscribe=1&previous_hosting_id=&fb_token=&title=I+suggest+you+guys+to+add+more+services&summary=So+far,+so+good.+Quick+response,+better+prices+and+effective+support.+All+a+company+needs,+they+got+it.&score_reliability=10&score_pricing=10&score_userfriendly=10&score_support=10&score_features=10&hosting_type=dedicated-server&author=Manik+Lal&social_link=&site=&screenshot%5Bimage%5D%5B%5D=&screenshot%5Bdescription%5D%5B%5D=&user_data_process_agreement=1&user_email_popup=&subscribe_popup=1&email_asked=1'

我试着把它倒掉

代码语言:javascript
复制
jsondata = json.dumps(body)

当我在运行代码后执行print(jsondata)时,我得到了完全相同的格式。

有没有什么库或方法可以解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2020-04-25 18:57:18

您可以使用urllib.parse.urlencode方法将字典编码为url参数字符串:

代码语言:javascript
复制
import urllib.parse
encoded = urllib.parse.urlencode(body)
# encoded = 'dont-ask-for-email=0&action=submit_user_review&post_id=6134 ... '
票数 3
EN

Stack Overflow用户

发布于 2020-04-25 18:58:34

您要寻找的是将json转换为querystring。

使用jsonurl

代码语言:javascript
复制
import jsonurl    
d = {"one" : 1, "two" : 2}    
print(jsonurl.query_string(d))   # one=1&two=2

编辑

不使用任何内置或3PL:

代码语言:javascript
复制
body = {
        'dont-ask-for-email': 0,
        'action': 'submit_user_review',
        }            

query_str = ''
for key in body.keys():
    query_str += str(key) + '=' + str(body[key]) + "&"

print(query_str[:-1])

输出:

代码语言:javascript
复制
action=submit_user_review&dont-ask-for-email=0 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61424473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档