Python json
跳到导航
跳到搜索
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
JSON 函数
使用 JSON 函数需要导入 json 库:import json。
现实中用得多应该是restful 啦
json.dumps
函数 描述 json.dumps 将 Python 对象编码成 JSON 字符串 因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。 json.dumps 用于将 Python 对象编码成 JSON 字符串。 cat j.py #!/usr/bin/python import json data = [ { 'a':1, 'b':2 , 'c':3}] json = json.dumps(data) print json evan@kalipc:~/tmp$ python j.py [{"a": 1, "c": 3, "b": 2}] 使用参数让 JSON 数据格式化输出 In [1]: import json In [2]: print json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ' ...: : ')) { "a": "Runoob", "b": 7 } 如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数 json.dump()用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件 import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} emb_filename = ('/home/cqh/faceData/emb_json.json') # solution 1 jsObj = json.dumps(name_emb) with open(emb_filename, "w") as f: f.write(jsObj) f.close() # solution 2 json.dump(name_emb, open(emb_filename, "w")) dump eg In [4]: import json In [5]: test_dict = {'bigberg': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt' ...: , 300]]}]} In [6]: print(test_dict) {'bigberg': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt', 300]]}]} In [7]: print(type(test_dict)) <type 'dict'> In [8]: json_str = json.dumps(test_dict) In [9]: print(json_str) {"bigberg": [7600, {"1": [["iPhone", 6300], ["Bike", 800], ["shirt", 300]]}]} In [10]: print(type(json_str)) <type 'str'> myeg In [40]: payload = {'some': 'data', 'a': 'av'} In [41]: json.dumps(payload) Out[41]: '{"a": "av", "some": "data"}' python 原始类型向 json 类型的转化对照表: Python JSON dict object list, tuple array str, unicode string int, long, float number True true False false None null
json.loads
json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。 语法 json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]]) 实例 以下实例展示了Python 如何解码 JSON 对象: #!/usr/bin/python import json jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; text = json.loads(jsonData) print text 以上代码执行结果为: {u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4} json 类型转换到 python 的类型对照表: JSON Python object dict array list string unicode number (int) int, long number (real) float true True false False null None
see also
更多内容参考:https://docs.python.org/2/library/json.html。
使用第三方库:Demjson
https://docs.python.org/2/library/json.html