Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法反序列化到对象:type,KeyError:';关键词:int;值:str';_Python_Serialization_Client_Runtime Error_Azure Devops Rest Api - Fatal编程技术网

Python 无法反序列化到对象:type,KeyError:';关键词:int;值:str';

Python 无法反序列化到对象:type,KeyError:';关键词:int;值:str';,python,serialization,client,runtime-error,azure-devops-rest-api,Python,Serialization,Client,Runtime Error,Azure Devops Rest Api,我正在编写一个python脚本,以使用azure devops rest api的python客户端库在azure devops中创建一个用户 我正在使用成员权限管理客户端的添加用户权限() 链接到该客户端的代码: 相应的REST API文档: 我写了代码: from azure.devops.connection import Connection from azure.devops.v5_0.member_entitlement_management.models import * im

我正在编写一个python脚本,以使用azure devops rest api的python客户端库在azure devops中创建一个用户

我正在使用成员权限管理客户端的添加用户权限()

链接到该客户端的代码:

相应的REST API文档:

我写了代码:

from azure.devops.connection import Connection
from azure.devops.v5_0.member_entitlement_management.models import *
import pprint

personal_access_token = <my token>

credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)

member_ent_mngmnt_client = connection.clients_v5_0.get_member_entitlement_management_client()

# List member entitlements
resp = member_ent_mngmnt_client.get_user_entitlements()
print(resp)

# ------ Add user entitlement -----------------

access_level = AccessLevel("express", None, None, None, None, None, None)
print(access_level)

graph_user = GraphUser(None, None, None, None, None, None, None, "user", None, None, "anaya.john@dynactionize.onmicrosoft.com", None, None, None)
 print(graph_user)

user_entitlement = UserEntitlement(None, None, None, None, None, None, graph_user)
print(user_entitlement)

# This is to check what is sent as the request body of REST API POST request
content = member_ent_mngmnt_client._serialize.body(user_entitlement, 'UserEntitlement')
print("\n Content : \n")
print(content)    

# Add user entitlement
resp = member_ent_mngmnt_client.add_user_entitlement(user_entitlement)  

print("\n Result: \n")  
print(resp)  
从azure.devops.connection导入连接
从azure.devops.v5\u 0.member\u Authentication\u management.models导入*
导入pprint
个人访问令牌=
凭据=基本身份验证(“”,个人\u访问\u令牌)
连接=连接(基本url=组织url,信任=凭据)
member\u ent\u mngmnt\u client=connection.clients\u v5\u 0.get\u member\u authority\u management\u client()
#列出会员应享权利
resp=member\u ent\u mngmnt\u client.get\u user\u rights()
打印(resp)
#----添加用户权限-----------------
访问级别=访问级别(“express”,无,无,无,无,无,无)
打印(访问级别)
graph_user=GraphUser(无,无,无,无,无,无,“用户”,无,无,“anaya。john@dynactionize.onmicrosoft.com“,无,无,无)
打印(图形用户)
用户权限=用户权限(无、无、无、无、无、无、图形用户)
打印(用户权限)
#这是为了检查作为RESTAPI POST请求的请求体发送的内容
content=member\u ent\u mngmnt\u client.\u serialize.body(用户权限,'用户权限')
打印(“\n内容:\n”)
打印(内容)
#添加用户权限
resp=成员、成员、客户。添加用户权限(用户权限)
打印(“\n结果:\n”)
打印(resp)
但是我得到的输出有一个错误msrest.exceptions。反序列化错误:

{'additional_properties': {}, 'account_license_type': 'express', 'assignment_source': None, 'license_display_name': None, 'licensing_source': None, 'msdn_license_type': None, 'status': None, 'status_message': None}

{'additional_properties': {}, '_links': None, 'descriptor': None, 'display_name': None, 'url': None, 'legacy_descriptor': None, 'origin': None, 'origin_id': None, 'subject_kind': 'user', 'domain': None, 'mail_address': None, 'principal_name': 'anaya.john@mydomain.com', 'is_deleted_in_origin': None, 'metadata_update_date': None, 'meta_type': None}

{'additional_properties': {}, 'access_level': None, 'extensions': None, 'group_assignments': None, 'id': None, 'last_accessed_date': None, 'project_entitlements': None, 'user': <azure.devops.v5_0.member_entitlement_management.models.GraphUser object at 0x000002147F444FD0>}

Content :

{'user': {'subjectKind': 'user', 'principalName': 'anaya.john@dynactionize.onmicrosoft.com'}}

Traceback (most recent call last):
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1294, in _deserialize
    value = self.deserialize_data(raw_value, attr_desc['type'])
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1447, in deserialize_data
    return self.deserialize_type[iter_type](data, data_type[1:-1])
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1478, in deserialize_iter
    return [self.deserialize_data(a, iter_type) for a in attr]
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1478, in <listcomp>
    return [self.deserialize_data(a, iter_type) for a in attr]
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1447, in deserialize_data
    return self.deserialize_type[iter_type](data, data_type[1:-1])
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1494, in deserialize_dict
    return {k: self.deserialize_data(v, dict_type) for k, v in attr.items()}
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1494, in <dictcomp>
    return {k: self.deserialize_data(v, dict_type) for k, v in attr.items()}
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1449, in deserialize_data
    obj_type = self.dependencies[data_type]
KeyError: ' key: int; value: str '

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:/Users/Anjana/Desktop/scripts_O365/az_devops_clientAPI_PAT.py", line 152, in <module>
    resp = member_ent_mngmnt_client.add_user_entitlement(user_entitlement)
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\azure\devops\v5_0\member_entitlement_management\member_entitlement_management_client.py", line 184, in add_user_entitlement
    return self._deserialize('UserEntitlementsPostResponse', response)
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1228, in __call__
    return self._deserialize(target_obj, data)
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1294, in _deserialize
    value = self.deserialize_data(raw_value, attr_desc['type'])
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1460, in deserialize_data
    return self._deserialize(obj_type, data)
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1298, in _deserialize
    raise_with_traceback(DeserializationError, msg, err)
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\exceptions.py", line 51, in raise_with_traceback
    raise error.with_traceback(exc_traceback)
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1294, in _deserialize
    value = self.deserialize_data(raw_value, attr_desc['type'])
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1447, in deserialize_data
    return self.deserialize_type[iter_type](data, data_type[1:-1])
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1478, in deserialize_iter
    return [self.deserialize_data(a, iter_type) for a in attr]
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1478, in <listcomp>
    return [self.deserialize_data(a, iter_type) for a in attr]
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1447, in deserialize_data
    return self.deserialize_type[iter_type](data, data_type[1:-1])
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1494, in deserialize_dict
    return {k: self.deserialize_data(v, dict_type) for k, v in attr.items()}
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1494, in <dictcomp>
    return {k: self.deserialize_data(v, dict_type) for k, v in attr.items()}
  File "C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site-packages\msrest\serialization.py", line 1449, in deserialize_data
    obj_type = self.dependencies[data_type]
msrest.exceptions.DeserializationError: Unable to deserialize to object: type, KeyError: ' key: int; value: str '
{'additional_properties':{},'account_license_type':'express','assignment_source':None,'license_display_name':None,'licensing_source':None,'msdn_license_type':None,'status_message':None}
{'additional_properties':{},'u links':无,'descriptor':无,'display_name':无,'url':无,'legacy_descriptor':无,'origin_id':无,'subject_kind':'user'、'domain':无,'mail_address':无,'principal_name':'anaya。john@mydomain.com“,”是否在源代码中删除“:无”,“元数据更新日期”:无,“元数据类型”:无}”
{'additional_properties':{},'access_level':无,'extensions':无,'group_assignments':无,'id':无,'last_access_date':无,'project_Rights':无,'user':}
内容:
{'user':{'subjectKind':'user','principalName':'anaya。john@dynactionize.onmicrosoft.com'}}
回溯(最近一次呼叫最后一次):
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1294行,在反序列化中
value=self。反序列化_数据(原始_值,attr_desc['type'])
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1447行,反序列化\u数据
返回self.deserialize_type[iter_type](数据,数据_type[1:-1])
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1478行,反序列化\u iter
return[attr中a的self.deserialize_数据(a,iter_类型)]
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1478行,在
return[attr中a的self.deserialize_数据(a,iter_类型)]
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1447行,反序列化\u数据
返回self.deserialize_type[iter_type](数据,数据_type[1:-1])
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1494行,反序列化目录
返回{k:self.attr.items()中k,v的反序列化_数据(v,dict_类型)}
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1494行,在
返回{k:self.attr.items()中k,v的反序列化_数据(v,dict_类型)}
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1449行,反序列化\u数据
对象类型=自相关性[数据类型]
KeyError:'键:int;值:str'
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“c:/Users/Anjana/Desktop/scripts_O365/az_devops_clientAPI_PAT.py”,第152行,在
resp=成员、成员、客户。添加用户权限(用户权限)
文件“C:\Users\Anjana\AppData\Local\Programs\Python\37\lib\site packages\azure\devops\v5\u 0\member\u authority\u management\member\u authority\u management\u client.py”,第184行,添加用户权利
返回self.\u反序列化('UserRightmentsPostResponse',response)
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1228行,在调用中__
返回self.\u反序列化(目标对象,数据)
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1294行,在反序列化中
value=self。反序列化_数据(原始_值,attr_desc['type'])
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1460行,反序列化\u数据
返回self.\u反序列化(对象类型,数据)
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1298行,在反序列化中
使用_回溯引发_(反序列化错误、消息、错误)
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\exceptions.py”,第51行,在raise_with_traceback中
引发错误。使用\u回溯(exc\u回溯)
文件“C:\Users\Anjana\AppData\Local\Programs\Python\Python37\lib\site packages\msrest\serialization.py”,第1294行,在反序列化中
value=self。反序列化_数据(原始_值,attr_desc['type'])
F
{'operationResult': {'isSuccess': False, 'errors': [{'key': 5032, 'value': 'Access Denied: This user needs the following permission(s) on the resource Users to perform this action: Add Users'}], 'userId': '261d25ad091b', 'result': None}, 'isSuccess': False, 'userEntitlement': None}