gpt4 book ai didi

python - 参数化包含 JSON 正文的 python POST 请求

转载 作者:行者123 更新时间:2023-11-30 23:19:42 26 4
gpt4 key购买 nike

我正在创建一个 Phyton 脚本来发布包含 JSON BODY 的请求,这是我需要在请求正文中传递的 JSON 输入:

{
"Name": "PServiceGroup125",
"ServiceIDs": [1330,2387]
}

我能够做到这一点(它有效):

   body = "{\"Name\": \"PServiceGroup125\",\"ServiceIDs\": [1330,2387]}"
headers = [ NVPair('Content-Type', 'application/json'), NVPair('UAMToken', uamtok) ]
response = self.httpPost(self.hostPort, self.URI, headers, body)

我想要实现的目标:(使其更加“OO”)

创建一个函数(比如 createBody )来创建一个 python 对象,然后将该 python 对象转换为 JSON 并将其传递到请求中:

def createBody(self):
self.serviceDataProvider.setName("PTestServiceGroup %s" % time.strftime("%d%m%H%M%S"))
self.serviceDataProvider.setServiceIDs(self.serviceDataProvider.nextItem())

我有两个问题:

这里我为对应的json名称和服务ID字段设置了“值”,我应该如何设置名称字段(ServiceIDs)? (“服务ID”:[1330,2387])

假设“serviceDataProvider”对象已成功创建(具有 Name 和 ServiceID 值)。

我应该如何将此对象(serviceDataProvider)转换回 JSON 并将其传递到请求中?

我正在查看“json”模块,但不太清楚如何在这种情况下使用它

感谢任何人的帮助和建议!

# serviceDataProvider is object of class ServiceDataProvider 

class ServiceDataProvider(URLDataProvider):
name =""
sid=''
sIDs=[]
def setName(self,name):
self.name=name

def getName(self):
return self.name

def setServiceIDs(self,sid):
sIDs=[]
sIDs.append(sid)

def getServiceIDs(self):
return self.sIDs

最佳答案

这有点过度设计,而且并不是真正的 Pythonic:猜测,您以前的经验是在 Java 中......

这里实际上不需要类,更不用说那些 getter/setter 了。最好将其构建为 Python 字典,然后可以直接转换为 JSON。

body = {}
body['Name'] = "PTestServiceGroup %s" % time.strftime("%d%m%H%M%S")
body['ServiceIds'] = [service_id1, service_id2] # wherever these come from

data = json.dumps(body)

关于python - 参数化包含 JSON 正文的 python POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25936510/

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