PATCH调用不通过API更新字段

时间:2017-09-11 14:45:26

标签: python api patch

具有通过API更新Netbox中的字段的功能。相同的数据在Django Web界面上工作,所以我知道不是这样,只是在我的脚本中我做错了。

def change_allocated_server_status(api_token="", limit="",jira_access=""):
    api_token_here = "Token " + api_token
    headers = {'Authorization': api_token_here}
    params = {'limit': limit}

    sites = "https://my-url.com/api/dcim/devices/?role=server-planned"
    session = requests.Session()
    site_response = session.get(sites, headers=headers, params=params)
    site_results = site_response.json()['results']

    allocated_servers = get_devices_by_dc_loca(api_token, limit, jira_access)

    url = "https://my-url.com/api/dcim/devices/239"


    update = {
            "device_role": 41
    }

    change = requests.patch(url, headers=headers, data=update)
    change_results = change.json()
    print change_results

print change_results 的输出是

{u'status': 2, u'device_role': 40, u'name': u'device-name', u'site': 1, u'comments': u'', u'rack': 4, u'asset_tag': None, u'platform': None, u'primary_ip4': None, u'device_type': 7, u'primary_ip6': None, u'custom_fields': {}, u'position': 5, u'serial': u'', u'face': 0, u'id': 239, u'tenant': 1}

未更改device_role。执行 print change.status_code 会返回200,所以我知道我在没有身份验证问题的情况下访问API,只是猜测它很简单我不知道

1 个答案:

答案 0 :(得分:0)

错过了' /'从我的网址末尾开始,停止调用PATCH,但不会抛出任何错误。