2016-09-27 5 views
1

Я работаю над этим ботом, который берет twitter api и переносит его в мою базу данных. Раньше я хватал 1 твита за раз, что неэффективно, учитывая, что я использовал 1 запрос из установленного предела. Поэтому вместо этого я решил получить 150 результатов. Я получаю эти результаты обратно:Превращение объекта Python в строку JSON

[Status(ID=780587171757625344, ScreenName=Ampsx, Created=Tue Sep 27 01:57:39 +0000 2016, Text='You know who you are #memes').

Я получаю около 150 из них. Есть ли библиотека, где я могу превратить это в JSON?

+0

Я не понимаю. разве твиттер api уже не возвращает json? – njzk2

+1

вы можете использовать json module 'import json', а затем преобразовать в jsondata = json.dumps (список python или словарь)'. поэтому объект 'Status' должен быть преобразован в словарь. – Leonard2

+0

Вы не можете «превратить это в файл JSON». Однако вы можете включить его в данные JSON. – Corgs

ответ

3

Если вы используете 2.6+ есть связанная библиотека Вы можете использовать (docs), просто:

import json 
json_string = json.dumps(object) 

Мы используем это много для быстрых конечных точек API, нужно просто чтобы быть осторожным с наличием функций или сложной вложенности в объекты, которые вы пытаетесь сериализовать, он вполне конфигурируется (поэтому вы можете пропускать поля, настраивать вывод некоторых и т. д.), но может быстро запутаться.

+0

Использование этого метода не превращает его в данные JSON. Должен ли я бросать его в цикл for? – Lewis

+0

Вы могли бы, но у вас получится серия строк JSON, вы, вероятно, захотите сначала их обернуть, а затем сделать один вызов json.dumps – jaylynch

1

Да, быстрый поиск в Google показал бы модуль json.

import json 

# instead of an empty list, create a list of dict objects 
# representing the statues as you'd like to see them in JSON. 
statuses = { 'statuses': [] } 

with open('file.json', 'w') as f: 
    f.write(json.dumps(statuses).encode('utf-8')) 
0
import json 
jsondata = json.dumps(TwitterStatusObject.__dict__) 
+0

Um no. 'Object .__ dict__' будет возвращать атрибуты и функции класса или модуля. – Corgs

+0

Пожалуйста, всегда добавляйте некоторые пояснения к вашему коду ... – andreas

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