将Python字典转换为JSON字符串

28

我缺少什么?我想将一个字典转换为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

1
@kampu 一些研究失败,但并不是严重的问题,漏掉一个函数调用的字母并不是什么大问题,可能只是一个意外。根据SO指南,尝试和错误都是可以展示的,因此它遵循了该网站的格式。 - jamylak
7
我"研究"引导我来到这里,所以这不是一个毫无意义的问题。最好他在这里提问,并回答10,825个观众的问题,而不是让他们想知道从何处开始寻找问题。这就是为什么 StackOverflow 存在的原因。RTFM 实际上很困难,而且通常是不够的。 - Peter H. Boling
4个回答

59

使用json.dumps将一个str转储出来

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

json.dump将数据转换为JSON格式并写入文件中。


12

我认为问题出在json.dump上。请尝试

json.dumps(fu)

2
你可以使用 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"}'

感谢Drenmi的排版,我是新手在stackoverflow上,下次回答会改进。 - Sharath BJ
sort_keys 在调试时非常方便。 - jamylak

0
message={"message":"Done", "result":"1"}
message_json = simplejson.dumps(message)
payload = message_json

##or 
message={"message":"Done", "result":"1"}
message_json=jsonify(message)

1
虽然这段代码可能解决了问题,但包括解释真的有助于提高您的帖子质量。 - 4b0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接