json配置文件

目录结构

  1. 后缀为.json的文件通常为json配置文件
  2. JSON(javaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它基于ECMAScript(w3c组织制定的JS规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。参考:​​http://json.org/​

Json的数据类型

value值

  • 使用双引号引起来的字符串,数值,true和false,null对象,数组,这些都是值value

字符串

  • 由双引号包围起来的任意字符的祝贺,可以有转义字符。
  • 例如:“abcd”
  • Python中的json模块和json配置文件_Python中的json模块

数值

  • 有正负,有整数,浮点数
  • 例如: 1或者-1
  • Python中的json模块和json配置文件_Json配置文件_02

数组[]

  • 有序的值的集合
  • 格式:[val1,val2,…,valn]
  • Python中的json模块和json配置文件_字符串_03

对象object

  • 无序的键值对集合
  • 格式:{key1:value1,…,keyn:valun}。
  • key必须是一个字符串,需要双引号包围这个字符串
  • value可以是任意合法的值
  • Python中的json模块和json配置文件_Python中的json模块_04

示例:

{
"xdd":[
{
"name":"tom",
"age": 18
},
{
"name":"python",
"age": 19
}
],
"total":2
}

Python中的json模块

Python支持少量的内建数据类型到json类型的转换

Python类型

Json类型

True

true

False

false

None

null

str

string

int

integer

float

float

list

array

dict

objct

json模块中常用方法

json模块中的方法

用途

dumps

json编码

dump

json编码并存入文件

loads

json解码

load

json解码,从文件读取数据

  • json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) #json编码并存入文件
  • obj:需要编码的obj对象
  • fp:json文件描述符对象
  • json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)->str #json编码
  • obj: 需要编码的obj对象
  • json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)->dict #json解码,从文件读取数据
  • fp:json文件描述符
  • json.loads(s, *, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)->dict #json解码
  • s :str类型的json字符串

简单示例

  1. 注意python中的json模块序列化转json时会将元组tuple转换为json的数组
import json
arr = {"name":"tom","age":20,"interest":("music","movie"),"class":["python"]}
#序列化转json格式
js = json.dumps(arr)
print(type(js),js)
#反序列化
arr2 = json.loads(js)
print(type(arr2),arr2)

#序列化存储
with open("xdd.json","w") as f:
json.dump(arr,f)

#读取json文件
with open("xdd.json","r") as f:
print("读取json文件",f.read())

#反序列化json文件
with open("xdd.json","r") as f:
arr3 = json.load(f)
print("反序列化arr3=",arr3)

Python中的json模块和json配置文件_json_05