2015-06-02 2 views
0

Я следующий кодPython TypeError: ожидаемая строка или буфер. Нужна ответ в словаре

import requests 
import sys 
import json 

arg_count = 0 

#check that correct number of arguments are passed to utility 
for arg in sys.argv: 
    arg_count = arg_count + 1 

assert arg_count == 4 

#parse the input arguments to the utility 
connectplus_group_title = sys.argv[1] 
connectplus_uname = sys.argv[2] 
connectplus_passwords = sys.argv[3] 

#find the group id from the input group name i.e connectplus_group_title 
response = requests.get("https://connectplus.geometricglobal.com/_vti_bin/beezy/v2/api.svc//Groups/Availability?title={title})", auth=(connectplus_uname, connectplus_passwords)) 
#assert response.status_code == response.codes.ok 
group_data = json.loads(response) 
group_id = group_data[connectplus_group_title] 

connectplus_group_contributors = "https://connectplus.geometricglobal.com/_vti_bin/beezy/v2/api.svc//Groups/{id}/Contributors?skip={skip}&take={take}" 
response = requests.get(connectplus_group_contributors,auth=(connectplus_uname, connectplus_passwords)) 
data = response.json() 

Мне нужно получить данные json, который возвращается в URL, я попытался с помощью json.loads(response.text) или просто json.loads(response) без везения я получаю вышеуказанную ошибку ,

Каков правильный способ получить данные с URL-адреса REST в словаре.

+0

Эта ошибка обычно указывает на искаженной JSON. Можете ли вы опубликовать exmaple из JSON, который вы получаете? – IanAuld

+0

Точно * где * вы получаете эту ошибку? Отправьте полный трафик. –

+0

В ответ я получаю '401', веб-url требует аутентификации. –

ответ

1

Вы должны пройти response.content, ответа является Response типа не простая строки (попробуйте type(response)) и json.loads потребности (как подсветки ошибки) строку или буфер.

Заменить вызов:

json.loads(response.content) 
+0

, будут возвращать объекты из словаря типа. –

Смежные вопросы