什么是json:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:
“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
jso官方说明参见:http://json.org/
Python操作json的标准api库参考:http://docs.python.org/library/json.html
load & dump:
json最常用的方法就是json类型和str类型的转换,其中,load和dump是针对文件的方法,loads和dumps是针对字符串的方法
import json # example.json # {"a": 1, "b": "ccc"} with open("example.json") as f: a = json.load(f) f.seek(0) b = json.loads(f.read()) # a和b相同,均为json类型 c = json.dumps(a) # c为str类型 with open("out.json", "w") as f: json.dump(a, f) # 将a写回out.json中
json的类型转换如下:
a = {"a": {‘t1‘: ‘t2‘}, ‘b‘: [‘l1‘, ‘l2‘], ‘c‘: ‘khj‘, ‘d‘: 1.23, ‘e‘: 456, ‘f‘: True, ‘g‘: None} json.dumps(a) # ‘{"a": {"t1": "t2"}, "c": "khj", "b": ["l1", "l2"], "e": 456, "d": 1.23, "g": null, "f": true}‘