在Python中,JSON(JavaScript Object Notation)和字典(dictionary)是两种不同的数据结构,它们有以下区别:
-
格式:
-
JSON是一种用于存储和交换数据的文本格式,它使用键值对和列表来表示数据。JSON具有固定的语法规则,例如使用双引号表示字符串,使用大括号表示对象(键值对的集合),使用方括号表示数组(值的有序集合)
-
而字典是Python中的一种内置数据类型,采用键值对的形式表示数据
-
-
用途:
-
JSON主要用于数据的序列化和反序列化,通常用于数据的传输和存储。它可以将复杂的数据结构转换为字符串,并且能够在不同编程语言之间进行数据交换
-
字典在Python中广泛用于存储、操作和管理数据,它提供了丰富的方法和功能,用于处理键值对数据
-
-
兼容性:
-
JSON是一种通用的数据格式,可以被不同编程语言和平台广泛支持
-
字典则是Python特有的数据类型,在其他编程语言中可能没有直接对应的概念
-
-
有序性:
-
JSON中的数组是有序的,保留元素的插入顺序
-
而字典是无序的,它不保证元素的插入顺序
-
-
字符串键:
-
JSON中的键必须是字符串
-
而字典中的键可以是任意的不可变类型(例如字符串、整数、浮点数等),但不能是可变类型(例如列表、字典)
-
总结来说,JSON是一种文本格式用于数据交换和存储,具有固定的语法规则,可被不同编程语言兼容。字典是Python中的内置数据类型,用于存储和操作键值对数据,它具有丰富的方法和功能。JSON更加通用和跨平台,而字典更加灵活和易于在Python中使用
Json和dict(字典)相互转换
翻译: load:加载 dump:转储
json转dict
import json
res=('{"name":"jingbeng"}')
print(res)
print(type(res))
输出:
{'name': 'jingbeng'}
<class 'dict'>
dict转json
import json
dict1={"name":"jingbeng"}
json_data=(dict1)
print(json_data)
print(type(json_data))
输出:
{"name": "jingbeng"}
<class 'str'>
注意(pycharm中所有的写的k:v不管是纯单引号还是双引号还是单双混合的都是dict类型,且json的k:v必须是""括起来)
比如:
json_data1={'name':'jingebng'}
json_data2={"name":"jingbeng"}
json_data3={'name':"jingbeng"}
json_data4={"name":'jingbeng'}
print(type(json_data1))
print(type(json_data2))
print(type(json_data3))
print(type(json_data4))
json_data5={
"name":"jingbeng"
}
print(type(json_data5))
输出:
<class 'dict'>
<class 'dict'>
<class 'dict'>
<class 'dict'>
<class 'dict'>
所以一般要得到json的数据类型,都是用(dict_data)转换
字典若是用单引号写的k:v,那么字典在转换成jison(字符串)的时候,k:v会变成双引号
dict_data={'name':'jingbrng'}
dict_data2={'name':'jingbeng'}
dict_data3={'name':"jingbneg"}
print((dict_data))
print((dict_data2))
print((dict_data3))
输出:
{"name": "jingbrng"}
{"name": "jingbeng"}
{"name": "jingbneg"}
json转换为dict变成''单引号括起k:v
json_data='{"name":"jingeng"}'
print(type(json_data))
dict_data=(json_data)
print(dict_data)
print(type(dict_data))
输出:
<class 'str'>
{'name': 'jingeng'}
<class 'dict'>