2013-02-28 6 views
1

Обычно мой веб-сервис, созданный с помощью файлов JSON, возвращает файлы в формате Bottle, который отлично работает. Но у меня есть исключение, которое нужно вызвать локальную функцию.Получить объект JSON в python

Вот что я пытался сделать:

import json 
def getData(): 
    return json.dumps({'data': someData }) 

def function(): 
    try: 
     # Fail 
    except: 
     print getData() 
     print type(getData()) 
     json.load(getData()) 

Так печатает:

{"data": "myData"} 
<type 'str'> 
[...] 
AttributeError: 'str' object has no attribute 'read' 

Так json.dumps дает мне строку. Как я могу использовать его как JSON?

+0

Во-первых, где ваше 'возвращение' перед' json'? –

+0

Извините, я переписал его, чтобы сделать его простым. Я забыл «возвращение». – Arthur

+2

'someData' уже является' dict() 'вы просто получаете доступ к' someData' ... по крайней мере, это должно быть. Если это строка, вам нужно называть 'json.load()' на ней – Cfreak

ответ

5

json.load загружает JSON из файлового объекта.

json.loads загрузок из строки. Это то, что вы хотите.

+0

Я знал, что был простой ответ. Спасибо. – Arthur

+0

Технически это файл-подобный объект (имеет метод read()), поэтому это будет работать: 'json.load (StringIO ('[" streaming API "]'))' –