python-字典和Json的区别

在Python中,JSON(JavaScript Object Notation)和字典(dictionary)是两种不同的数据结构,它们有以下区别:

  1. 格式:

    1. JSON是一种用于存储和交换数据的文本格式,它使用键值对和列表来表示数据。JSON具有固定的语法规则,例如使用双引号表示字符串,使用大括号表示对象(键值对的集合),使用方括号表示数组(值的有序集合)

    2. 而字典是Python中的一种内置数据类型,采用键值对的形式表示数据

  2. 用途:

    1. JSON主要用于数据的序列化和反序列化,通常用于数据的传输和存储。它可以将复杂的数据结构转换为字符串,并且能够在不同编程语言之间进行数据交换

    2. 字典在Python中广泛用于存储、操作和管理数据,它提供了丰富的方法和功能,用于处理键值对数据

  3. 兼容性:

    1. JSON是一种通用的数据格式,可以被不同编程语言和平台广泛支持

    2. 字典则是Python特有的数据类型,在其他编程语言中可能没有直接对应的概念

  4. 有序性:

    1. JSON中的数组是有序的,保留元素的插入顺序

    2. 而字典是无序的,它不保证元素的插入顺序

  5. 字符串键:

    1. JSON中的键必须是字符串

    2. 而字典中的键可以是任意的不可变类型(例如字符串、整数、浮点数等),但不能是可变类型(例如列表、字典)

总结来说,JSON是一种文本格式用于数据交换和存储,具有固定的语法规则,可被不同编程语言兼容。字典是Python中的内置数据类型,用于存储和操作键值对数据,它具有丰富的方法和功能。JSON更加通用和跨平台,而字典更加灵活和易于在Python中使用

Json和dict(字典)相互转换

翻译: load:加载 dump:转储

json转dict

import json

res=json.loads('{"name":"jingbeng"}')
print(res)
print(type(res))

输出:

{'name': 'jingbeng'}
<class 'dict'>

dict转json

import json

dict1={"name":"jingbeng"}
json_data=json.dumps(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的数据类型,都是用json.dumps(dict_data)转换

字典若是用单引号写的k:v,那么字典在转换成jison(字符串)的时候,k:v会变成双引号

dict_data={'name':'jingbrng'}
dict_data2={'name':'jingbeng'}
dict_data3={'name':"jingbneg"}
print(json.dumps(dict_data))
print(json.dumps(dict_data2))
print(json.dumps(dict_data3))

输出:

{"name": "jingbrng"}
{"name": "jingbeng"}
{"name": "jingbneg"}

json转换为dict变成''单引号括起k:v

json_data='{"name":"jingeng"}'
print(type(json_data))
dict_data=json.loads(json_data)
print(dict_data)
print(type(dict_data))

输出:

<class 'str'>
{'name': 'jingeng'}
<class 'dict'>

猜你喜欢

转载自blog.csdn.net/weixin_53328532/article/details/131604507