Здравствуйте. Столкнулся с проблемой. Пытаюсь преобразовать словарь в JSON. Преобразовываю, но сервер возвращает ошибку. Хотя такой же JSON отправленный через Postman работает удачно.
Вот функция:
def test_fdg(self):
resp = func.add_team_with_contact(self.api, 'my1',self.phone2 )
group_name = tools.generate_random_string(30)
data = {'display_name': group_name,
'members': [
{
'jid': resp['member']['jid'],
'status': resp['member']['status']
}
]
}
d = json.dumps(data)
print(d)
resp = self.api.add_group(self.team_uid, d)
resp = resp.json()
Вот как выглядит результат d = json.dumps(data):
{"display_name": "YCuHuDuDgwzUYcJFUXgEOzGVWLDvs", "members": [{"jid": "11dc5d5f-56ab-4fae-b5f9-eb4945fac8e3@xmpp", "status": "member"}]}
Вот такую ошибку возвращает сервер:
{
"details": {
"members": [
{
"jid": "Выберите корректный вариант. 11dc5d5f-56ab-4fae-b5f9-eb4945fac8e3@xmpp нет среди допустимых значений."
}
]
},
"error": "INVALID_DATA",
}
Такое ощущение, что как-то некорректно я преобразовываю словарь в json. Есть какие-то идеи?
Вот так выглядит код функций:
def add_group(self, team_uid, data):
"""
endpoint /teams/{team_uid}/groups методом POST
Создание группы
В data передаем json
"""
endpoint = '/teams/{team_uid}/groups'.format(
team_uid=team_uid
)
url = self.url + endpoint
return self.call_post_api(url, data)
def call_post_api(self, url, data={}, params={}):
""" Обертка над requests.post """
headers = {}
jar={}
if self.is_token_auth:
headers = {'Token': self.token}
else:
jar = req.cookies.RequestsCookieJar()
jar.set('otvauth', self.token)
resp = req.post(
url,
data=data,
params=params,
headers=headers,
cookies=jar,
)
return resp