在python中,字典的输出内容跟json格式内容一样,但是字典的格式是字典,json的格式是字符串,所以在传输的时候(特别是网页)要转换使用。


重要函数

  • 编码:把一个Python对象编码转换成Json字符串   json.dumps()

  • 解码:把Json格式字符串解码转换成Python对象   json.loads()

In [1]: import json

In [2]: dic = { 'str': 'this is a string', 'list': [1, 2, 'a', 'b'], 'sub_dic': { 'sub_str': 'this is sub str', 'sub_list': [1, 2, 3] }, 'end': 'end' }

In [3]: type(dic)
Out[3]: dict

In [5]: json_obj=json.dump(dic)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-1959d613a6c1> in <module>()
----> 1 json_obj=json.dump(dic)

TypeError: dump() takes at least 2 arguments (1 given)

In [6]: json_obj=json.dumps(dic)

In [8]: type(json_obj)
Out[8]: str

In [9]: print json_obj
{"sub_dic": {"sub_str": "this is sub str", "sub_list": [1, 2, 3]}, "end": "end", "list": [1, 2, "a", "b"], "str": "this is a string"}

In [10]: dic1=json.loads(json_obj)

In [11]: type(dic1)
Out[11]: dict

In [12]: print dic1
{u'end': u'end', u'list': [1, 2, u'a', u'b'], u'sub_dic': {u'sub_str': u'this is sub str', u'sub_list': [1, 2, 3]}, u'str': u'this is a string'}

In [13]: print dic
{'sub_dic': {'sub_str': 'this is sub str', 'sub_list': [1, 2, 3]}, 'end': 'end', 'list': [1, 2, 'a', 'b'], 'str': 'this is a string'}

参考:https://docs.python.org/dev/library/json.html