如何使用Python替换Get请求中的用户输入值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Python替换Get请求中的用户输入值相关的知识,希望对你有一定的参考价值。

网址在单个变量中定义,将根据用户放置在get请求中使用,请在下面找到代码...

d = {'Mango': 'http://12.345.67.891:8000/api/datasources/proxy/1/query?db=UK_GHS&q=SELECT%20sum(%22count%22)%20FROM%20%22gatling%22%20WHERE%20%22status%22%20%3D%20%27ok%27%20AND%20%22simulation%22%20%3D~%20%2Fsoak-test*%2F%20AND%20time%20%3E%201544491800000ms%20and%20time%20%3C%201544495400000ms%20GROUP%20BY%20%22script%22&epoch=ms',
 'Banana':'http://12.345.67.891:8000/api/datasources/proxy/1/query?db=UK_GHS&q=SELECT%20sum(%22count%22)%20FROM%20%22gatling%22%20WHERE%20%22status%22%20%3D%20%27ok%27%20AND%20%22simulation%22%20%3D~%20%2Fspike-test*%2F%20AND%20time%20%3E%201544491800000ms%20and%20time%20%3C%201544495400000ms%20GROUP%20BY%20%22script%22&epoch=ms',
 'Apple':'http://12.345.67.891:8000/api/datasources/proxy/1/query?db=UK_GHS&q=SELECT%20sum(%22count%22)%20FROM%20%22gatling%22%20WHERE%20%22status%22%20%3D%20%27ok%27%20AND%20%22simulation%22%20%3D~%20%2Fload-test*%2F%20AND%20time%20%3E%201544491800000ms%20and%20time%20%3C%201544495400000ms%20GROUP%20BY%20%22script%22&epoch=ms'}

Dashboard_name = raw_input("Enter dashboard name from the above list :")

if the user enters Mango get request will take 1st URL and if user enters banana get request will take 2nd url and so on

user_input_from = raw_input("Enter from date and time in YYYY-MM-DD HH:MM:SS format :")
user_input_to = raw_input("Enter to date and time in YYYY-MM-DD HH:MM:SS format :")

def user_input_to_epoch_time(user_input):
    return int(time.mktime(time.strptime(user_input, '%Y-%m-%d %H:%M:%S')))

final_url = d.format(user_input_to_epoch_time(user_input_from),
                                  user_input_to_epoch_time(user_input_to))
print(final_url)
results = d.get(Dashboard_name, 'No value in list')
print results

我实现了您建议的代码,但由于URL不是直接的,因此根据用户输入获取以下错误。

    final_url = d.format(user_input_to_epoch_time(user_input_from),
AttributeError: 'dict' object has no attribute 'format'
答案

代码如下:

import time

SHORT_URL_TEMPLATE_MANGO = 'http://12.345.67.891:8000/api/mango?from={}&to={}'
SHORT_URL_TEMPLATE_APPLE = 'http://12.345.67.891:8000/api/apple?from={}&to={}'

URLS = {'mango': SHORT_URL_TEMPLATE_MANGO, 'apple': 
        SHORT_URL_TEMPLATE_APPLE}


def user_input_to_epoch_time(user_input):
    return int(time.mktime(time.strptime(user_input, '%Y-%m-%d %H:%M:%S')))


dash_board = 'mango'
user_input_from = "2018-10-12 23:12:44"
user_input_to = "2018-10-12 23:17:55"

final_url = URLS[dash_board].format(user_input_to_epoch_time(user_input_from),
                                user_input_to_epoch_time(user_input_to))

print(final_url)  

输出:

http://12.345.67.891:8000/api/mango?from=1539375164&to=1539375475

以上是关于如何使用Python替换Get请求中的用户输入值的主要内容,如果未能解决你的问题,请参考以下文章

postman---postman发送请求

GET 请求 + 号被替换成空格的问题解决方案

如何通过nodejs中的get请求使用req.body

如何从 Java 中的 RESTFul 服务向 Ipstack API 请求 GET

如何通过python twisted HTTPClient生成POST和GET请求?

使用用户输入发送套接字GET请求的语法是什么