json字符串和字典的区别:
json:
(JavaScript Object Notation)的首字母缩写,字面的意思是(javascript对象表示法),这里说的json指的是类似于javascript对象的一种数据格式对象,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式, 前端使用ajax的时候后台返回该前端的数据格式就是json格式的。
字典是一种数据结构,而json是一种数据格式,
格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号(值如果是数字可以不用加双引号),不能使用单引号,用单引号或者不用引号会导致读取数据错误,而且“key”必须使用边界符(双引号),但字典就无所谓了,可以使用单引号,也可以使用双引号。
总结:
json的特点
- 字符串外边有单引号
- json是类字典的形式,里面的键-值对规定必须使用双引号,值如果是数字可以不加双引号,
但是键必须是双引号引起来的字符串, json的值可以是普通变量,数组,json对象
缺点:
json只有null、布尔、数字、字符串、数组和对象这几种数据类型,JSON没有日期类型
import json
name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} #定义一个字典
jsObj = json.dumps(name_emb) #把字典转成json字符串
print(name_emb)
print(jsObj)
print(type(name_emb))
print(type(jsObj))
运行结果如下:
{'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'} #字典
{"a": "1111", "c": "3333", "b": "2222", "d": "4444"} #jason字符串本质还是str字符串
<type 'dict'>
<type 'str'>
import json
a = {"a": 1, "b": 2, "c": True} # 定义1个字典
b = '{"a": 1, "b": 2, "c": true}' #定义一个json格式str,就是json字符串
print(type(a))
print(json.dumps(a)) #把dict转 json
运行结果
<class 'dict'>
{"a": 1, "b": 2, "c": true}
<class 'str'>
{'a': 1, 'b': 2, 'c': True}
python 里面的基础数据类型有:int、str、 float、list、bool、tuple、 dict、set 这几种,里面没 json 这种数据类型。
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的 js 规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得
JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json 本质上还是字符串,只是按 key:value 这种键值对的格式来的字符串