2013-05-21 37 views
19

我錯過了什麼?我想將字典轉儲爲json字符串。Python - dump dict作爲json字符串

我使用Python 2.7

有了這個代碼:

import json 
fu = {'a':'b'} 
output = json.dump(fu) 

我得到以下錯誤:

Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/gevent-1.0b2-py2.7-linux-x86_64.egg/gevent/greenlet.py", line 328, in run 
    result = self._run(*self.args, **self.kwargs) 
    File "/home/ubuntu/workspace/bitmagister-api/mab.py", line 117, in mabLoop 
    output = json.dump(fu) 
TypeError: dump() takes at least 2 arguments (1 given) 
<Greenlet at 0x7f4f3d6eec30: mabLoop> failed with TypeError 
+0

坦率地說,這個問題的存在反映了嚴重的研究失敗。如果'foo'沒有達到你的期望,'help(foo)'應該是你的第一個停靠點。 (事實上​​,在這種情況下,它會明確表示'dump()'不是你想要的。) – kampu

+1

@kampu一些研究失敗,但不* *嚴重*,忽略函數調用的一個字母並不重要,也許只是一場意外。根據SO指南顯示的嘗試和錯誤,所以它遵循網站格式。 – jamylak

+2

我的「研究」讓我在這裏,所以這不是一個毫無意義的問題。他在這裏問得好,回答了10,825位觀衆的問題,而不是讓他們想知道從哪裏開始尋找問題。 這就是爲什麼StackOverflow是一件事。 RTFM實際上很困難,而且往往不夠。 –

回答

41

使用json.dumps轉儲str

>>> import json 
>>> json.dumps({'a':'b'}) 
'{"a": "b"}' 

json.dump轉儲到文件

8

我認爲問題是json.dump。嘗試

json.dumps(fu) 
0

您可以使用json.dumps

例子:

import json 

json.dumps({'zuckerberg':'tech','sachin':'cricket'}) 

此輸出:

'{"zuckerberg": "tech", "sachin": "cricket"}' 

如果你想的按鍵排序,使用sort_keys作爲第二個參數json.dumps

json.dumps({'zuckerberg':'tech','sachin':'cricket'},sort_keys=True) 

輸出:

'{"sachin": "cricket", "zuckerberg": "tech"}' 
+0

感謝Drenmi的格式化,對於stackoverflow是新的,我將在下次回答時進行改進 –