如何在Python以下JSON

如何在Python以下JSON

问题描述:

我有一个JSON的身体像这样创建一个PUT请求:如何在Python以下JSON

'\n{\n"users" : \n[\n\n{\n"dn" : null,\n"dns_domain" : null,\n"domain" : "UNIX_USERS",\n"email" : null,\n"enabled" : true,\n"expired" : false,\n"expiry" : null,\n"gecos" : "InsightIQ User",\n"generated_gid" : false,\n"generated_uid" : false,\n"generated_upn" : true,\n"gid" : \n{\n"id" : "GID:15",\n"name" : "insightiq",\n"type" : "group"\n},\n"home_directory" : "/ifs/home/insightiq",\n"id" : "insightiq",\n"locked" : false,\n"max_password_age" : null,\n"member_of" : null,\n"name" : "insightiq",\n"object_history" : [],\n"on_disk_group_identity" : \n{\n"id" : "GID:15",\n"name" : "insightiq",\n"type" : "group"\n},\n"on_disk_user_identity" : \n{\n"id" : "UID:15",\n"name" : "insightiq",\n"type" : "user"\n},\n"password_expired" : false,\n"password_expires" : true,\n"password_expiry" : null,\n"password_last_set" : null,\n"primary_group_sid" : \n{\n"id" : "SID:S-1-22-2-15",\n"name" : "insightiq",\n"type" : "group"\n},\n"prompt_password_change" : false,\n"provider" : "lsa-file-provider:System",\n"sam_account_name" : "insightiq",\n"shell" : "/sbin/nologin",\n"sid" : \n{\n"id" : "SID:S-1-22-1-15",\n"name" : "insightiq",\n"type" : "user"\n},\n"type" : "user",\n"uid" : \n{\n"id" : "UID:15",\n"name" : "insightiq",\n"type" : "user"\n},\n"upn" : "[email protected]_USERS",\n"user_can_change_password" : false\n}\n]\n}\n') 

现在我想在Python中创建一个PUT请求,以改变“启用”的价值假。 这是我的,但我一直在收到400个不好的请求。

def revert_insightIQ_user_account(self): 
    ''' Revert insightIQ_user_account''' 

    print "Reverting insightIQ user to default... " 
    req_url = "/platform/1/auth/users/insightiq" 
    default = {} 
    default['users'] = [] 
    default['users'].append({}) 
    default["users"][0]["enabled"] = False 
    self.http_papi.httpPut(self.base_url, self.port, self.username, self.password, req_url, req_body=default) 
    print "Settings reverted successfully.." 

我想我错创建JSON主体格式,因为URL和所有是正确的(我有双重检查的是),但我无法弄清楚什么是正确的,并已穷途末路结束。有人可以帮忙吗?

编辑:
http_papi是创造了一个库,它有这样定义GET把所有的API交易,所以每当我使用一个API请求我把它从库(已导入)

JSON字符串source是提到的URI:/ platform/1/auth/users/insightiq(这与我用于测试的集群IP一起)

发布的JSON字符串是我回原始CURL时返回的内容请求启用用户。我必须在我的Python代码中创建一个相同的JSON格式,并在那里传递enabled = false。

+0

你应该看一看的要求,http://docs.python-requests.org/en/master/ – Netwave

+0

什么是'http_papi'? JSON字符串的来源是什么? JSON字符串与代码中的任何内容有什么关系 - 它似乎并没有在任何地方使用。你还没有在哪里使用'a'和'b'的重点是什么? –

+0

http_papi是一个创建的库,其中包含所有API事务,如GET PUT定义的,所以无论何时使用API​​请求,我都会从该库调用它(它已导入) JSON字符串源是所提及的URI:/ platform/1/auth/users/insightiq(这与我用于测试的群集IP一起) 发布的JSON字符串是我在执行原始CURL放置请求以启用用户时返回的内容。 我必须在我的python代码中创建一个相同的JSON格式,并在那里传递enabled = false。 我创建一个和B为空列表/字典,因为必须匹配我们得到的传递PUT – JSlearner

只需更改列表对象“启用”即可工作,无需从头开始创建DS。

高清revert_insightIQ_user_account(个体经营): '' '还原insightIQ_user_account '''

print 
    print "Reverting insightIQ user to default... " 
    default = {} 
    req_url = "/platform/1/auth/users/insightiq" 
    default['enabled'] = False 
    self.http_papi.httpPut(self.base_url, self.port, self.username, self.password, req_url, req_body=default) 
    print "Settings reverted successfully..