2016-09-27 63 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

我不明白。不是Twitter的API已經返回JSON? – njzk2

+1

你可以使用json模塊'import json',然後通過'jsondata = json.dumps(python list or dictionary)'進行轉換。因此'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

是的,一個快速谷歌搜索將揭示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