json文件格式
JSON是什么
(JavaScript Object Notation)json是一种轻量级的数据交换格式。现在是理想的数据交换语言。
JSON构建于两种结构:
1.“名称/值”对的集合(A collection of name/value pairs)。(在不同得语言有类似的不同叫法,比如python中有点像字典)
2. 值得有序列表。(大部分被理解为数组)
JSON的形式
JSON具有以下这些形式:
1.对象
对象是一个无序的“名称/值”对的集合。一个对象以“{"
(左括号) 作为开始,”}"
(右括号)作为结束。每个名称后面跟一个冒号":"
,“名称/值”对之间使用","
分割。
2.数组
数组是值(value)的有序集合。一个数组以"["
(左中括号),"]"
(右中括号)结束。值之间使用","
分隔。
值可以是双引号括起来的字符串(String)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。
字符串(string)是由双引号包围的任意数量unicode字符的集合。使用反斜线转义。一个字符(character)即一个单独的字符串(character string)
数值(number)也与C或者java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
使用范例
1.对象的每个属性(键)都要有双引号,否则json数据不能正常加载。
创建以下形式的json格式的文档:
1 | {"name": "Solkatt","age": 20} |
创建以下python测试文件:
1 | import json |
进行运行
但是如果把json格式改成这样。
1 | {"name": "Solkatt","age": 20,"hair": "yellow", |
运行报错:
表示需要双引号。
2.数组和对象可以同时使用(数组加对象)
1 | { |
python中的JSON
JSON函数
Ps:使用json函数需要导入json库
json.dumps
1 | json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw) |
obj是必须的,用于转换的对象。
sort_keys参数设置为True时,生成的json对象是按键排序的,sort_keys默认为false
indent参数可以设置json对象的缩进格式
separators参数可以设置json对象的分隔符
json.dumps用于将python对象编码成JSON字符串。
这里给出以下python原始类型向json类型的转化对照表:
比如
1 | import json |
可以转化成json格式的对象类型。
json.dump
存json文件,将python对象存到json格式的文件中不再使用dumps,而是要用dump:
运行后成功写入:
json.loads
json.loads用于解码JSON数据。该函数返回python字段的数据类型。
1 | import json |
把json格式转化为python的字典
json.load
读取json文件,从json文件中读取内容存入到python对象,就是使用load:
1 | import json |