簡體   English   中英

如何接受 GET 請求並將其轉換為 JSON object?

[英]How do I take a GET request and turn it into a JSON object?

我實際上不想對網站進行任何調用,但我必須接受此 GET 請求並將其轉換為 JSON object。

?goal=NOT_GOAL_SETTING&kpi=lfa&sec_kpi=not_being_used&numdays=31&budget=13000000&channel=not_being_used&channel_max=not_being_used&brand=Ram&nameplate=namplate1_nameplate2_&target=800000&nameplate_min_spend=0_0_0_0_0_0_0&nameplate_max_spend=0_0_0_0_0_0_0&max_lfas=70000_100000_4000_400000_90000_15000_2000&search_digital_min_spend=0_0&search_digital_max_spend=0_0&search_digital_min_lfas=0_0&search_digital_max_lfas=0_0

我想要在=之后定義的每個變量,並且我想用_分割變量。

一個較小的請求是這樣的-

?variable1=1_2_3_4&variable2=string

我想要的是以下內容:

{"variable1":[1,2,3,4], "variable2":"string"}

我為此構建了一個簡單的 function 之前使用urllib

import sys
import urllib.parse

def parseGetUrl(url):
    result = {}
    for data in url.split("&"):
        key, val = urllib.parse.unquote(data).split("=")            
        if val.find('_') != -1:
            val = val.split('_')
        result[key] = val
    return result

if __name__ == "__main__":
    url = sys.argv[1][1:] # Gets argument then removes ?   
    parsedData = parseGetUrl(url)
    print(parsedData)

您需要將 url 包含在引號內( "

python3 app.py "?goal=102&value=1_0_0_0"

請注意,根據您使用urrlib的 python 版本,可能會引發錯誤:

# python 3
import urrlib.parse
...
key, val = urllib.parse.unquote(data).split("=")

# python 2
import urllib
...
key, val = urllib.unquote(data).split("=")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM