json字符串和字典的区别: json: (JavaScript Object Notation)的首字母缩写,字面的意思是(javascript对象表示法),这里说的json指的是类似于javascript对象的一种数据格式对象,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式, 前端使用ajax的时候后台返回该前端的数据格式就是json格式的。
字典是一种数据结构,而json是一种数据格式, 格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号(值如果是数字可以不用加双引号),不能使用单引号,用单引号或者不用引号会导致读取数据错误,而且“key”必须使用边界符(双引号),但字典就无所谓了,可以使用单引号,也可以使用双引号。
总结: json的特点 1. 字符串外边有单引号 2. json是类字典的形式,里面的键-值对规定必须使用双引号,值如果是数字可以不加双引号, 但是键必须是双引号引起来的字符串, json的值可以是普通变量,数组,json对象
缺点: json只有null、布尔、数字、字符串、数组和对象这几种数据类型,JSON没有日期类型
#################################### users = { "admin": { 'username': 'admin', "password": 123, "nickname": "老王" } } import json 以下两个函数用于json数据类型的转换 json.dumps() 字典 -> json json.loads() json -> 字典 以下两个函数用于json数据类型转换的同时操作文件 json.dump() json.load()
# 1. 数据类型的转换 # 其他类型转换为json字符串 json_str = json.dumps(users) print(json_str, type(json_str))
# 读取json字符串,还原为原来的数据类型 json_obj = json.loads(json_str) print(json_obj, type(json_obj)) # # # 2. 类型转换的同时操作文件 # json.dump(users, open("d2.txt", "w")) # # data = json.load(open("d2.txt")) # print(data)