记录一次了解模糊的地方。
文章肯定还有缺陷、错误,欢迎指正,以免误人子弟,也可以让我发现不足,先在此谢过了!哈哈
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
Dict:
是Python中常用的映射数据类型
Dict格式:
存储键值对{key:value},键必须是唯一的,但值则不必。键和值可以是双引号,也可以是单引号
Dict键:
必须是不可变的,如字符串,数字或元组。
Dict值:
可以取任何数据类型,
JSON:
指的是 JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式
JSON格式:
存储键值对{key:value},名称/值对包括字段名称(在双引号中)
JSON值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在中括号中)
对象(在大括号中)
null
区别:
0:Python 的字典是一种数据结构,JSON 是一种数据传输格式。
Json 就是一个根据某种约定格式编写的纯字符串,不具备任何数据结构的特征,JSON是纯文本的,无法直接操作。
Dict 是字典本身是一个完整的数据结构,实现了一切自身该有的算法。
1:Json格式的数据,在python中以字符串形式呈现
2:Json中的空置为 null,字典中的空值为 None
3:Json中除数字外,所有的key和value都是字符串,而且一定要用双引号**加粗样式**括起来,
Json中的key不论是数字还是字符串都要用双引号括起来(key可以重复)
python中的字典key为数字时用不用引号括起来都可以(key不能重复)
4:Json里面类似Dict里面的键可以重复,转换成字典之后,后面的会将前面的覆盖,因为Dict里面的键不能重复
5:Dict 里可以嵌套tuple, Json里只有array。 json.dumps({1:2}) 的结果是 {“1”:2}; json.dumps((1,2)) 的结果是[1,2]
Json key name 必须是字符串, python 是hashable, {(1,2):1} 在python里是合法的,因为tuple是hashable ,
但列表则不行,type;{[1,2]:1} 在python里TypeError: unhashable “list”, 验证键值不可变
class C:
def __init__(self):
self.a = 1
self.b = 2
def fun():
pass
d = {'a': 1, (1, 2): 'tuple', 3: {3: 2}, 3: '重复的key会覆盖前面的值'} # {'a': 1, (1, 2): 'tuple', 3: '重复的key会覆盖前面的值'}
d = {[1, 2]:"键值必须是不可变的"} # TypeError: unhashable type: 'list'
d = {{1, 2}: "键值必须是不可变的"} # TypeError: unhashable type: 'set'
d = {{1: 2}: "键值必须是不可变的"} # TypeError: unhashable type: 'dict'
d = {1: ''} # {1: ''}
d = {1: None} # {1: None}
d = {1: True} # {1: True}
d = {1: object} # {1: <class 'object'>}
d = {1, C()} # {1, <__main__.C object at 0x0000000001DC92E8>} <class '__main__.C'>
d = {1, fun()} # {1, None} <class 'NoneType'>
# 将json字符串转换成由字典组成的列表
# 注意:
# 1:json里面的空为 null,python里面的空为None
# 2:json里面类似dict里面的键可以重复,转换成字典之后后面的会将前面的覆盖,因为dict里面的键不能重复
# 将json转换成字典,注:json格式中的外面一定要加单引号,因为json格式的数据表现形式是字符串
json_to_dict = '{"1":"null","2":null,"3":10001,"3":9999}' # {'1': 'null', '2': None, '3': 9999}
参考:
https://www.cnblogs.com/dazhuangzhuang/p/12068475.html
https://www.runoob.com/python3/python3-dictionary.html
https://www.runoob.com/json/json-tutorial.html