2013-08-13 5 views
0

Я получаю доступ к классу из кода api_service.py, который можно найти here. Когда я звоню первая функция, у меня нет никаких проблем, потому что не передаются переменные:Передача переменной веб-службе JSON

from api_service import ApiService 
import json 

def main(): 

    api_key = *removed* 
    access_token = *removed* 

    calling = ApiService(api_key,access_token) 
    survey_list = calling.get_survey_list() 

Но когда я использую один и тот же тип рутина, как описано выше, чтобы вызвать функцию из ApiService, который требует переменной, я сказал, что я должен передать объект.

survey_details = calling.get_survey_details("1234") 
    survey_details = json.loads(json.dumps(survey_details)) 
    print survey_details 

Конкретное сообщение об ошибке:

{u'status': 3, u'errmsg': u"Value '1234' for field '_data' is not of type object"} 

Деталь для get_survey_details аспекта API SurveyMonkey является here, хотя я думаю, что питон-гуру может решить эту проблему, не зная об API.

+3

Ты запустил слово в названии? Не могли бы вы заполнить его, это потеря –

+4

Просто угадайте: вы попробовали 'get_survey_details (survey_id =" 1234 ")'? (И если это не сработает, попробуйте 'get_survey_details ({" survey_id ":" 1234 "})'. –

+0

Либо то, что сказал @DavidRobinson, либо для вызова требуется строка JSON и, следовательно, объект JSON для данных. Это было бы симметрично API, учитывая, что он, похоже, также возвращает строку JSON на другом конце. –

ответ

2

Это JavaScript/JSON объект:

{field:'value'} 

Вы прошли строку, которая не учитывается в качестве «объекта» для этих целей.

Обратите внимание, что сообщение об ошибке генерируется службой, к которой вы обращаетесь. Этот вопрос будет лучше направлен на создателя сервиса.

+0

Я также спросил там и спасибо за вашу помощь (вопрос решена). – philshem

+0

@psny Добро пожаловать. Не стесняйтесь принять этот ответ, если это поможет. – Marcin

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

  • Нет связанных вопросов^_^