Python学习笔记--JSON数据类型

JSON(javasacript object notation):是一种存储和交换数据的语法。本质就是字符串,json数据是在语言里面使用的。

JSON对象:他的意思就是一组键值对的数据对象。

JSON优点:

1、数据格式简单,易于读写,格式都是压缩的,占用带宽小。

2、已与解析这种语言,客户端JavaScript可以简单的通过eval_r()进行JSON数据读取

3、支持多种语言,包括c,c++,java,javascript,perl,PHP,python等。

4、在PHP(Hypertext Preprocessor,超文本预处理器)世界,已经存在PHP-JSON\JSON-PHP便于PHP序列化后的程序直接调用PHP复渠段的对象、数组,能够直接生成JSON格式。

5、JSON格式能够直接为服务器端代码使用,简化了服务器端和客户端的代码开发,而且完成的任务不变,易于维护。

JSON缺点:

1、推广不足,较XML格式,使用少,通用性差

2、JSON格式在Web Service中推广还属于初级阶段

JSON语法规则

1、数据以,"键值":"数据"   格式存储(这里类似字典)

2、数据之间用逗号隔开

3、花括号保存对象

4、方括号保存数组

#JSON example

[
    {
        "djsk": "周一",
        "dsad": "周二",
        "dsf": "null",
        "fgd": "1hsd093",
        "fvd": "dsjk9823",
        "dgfd": "True",
    },
    {
        
        "djsk1": ["周一1","zhoue"],
        "dsad1": "周二1",
        "dsf1": "null",
        "fgd1": 18,
        "fvd1": "dsjkx9823",
        "dgfd1": "True", 
    }
] 
#简单嵌套逻辑,如果拿到一个json文件,首先要解析它的结构,可以借助工具Dbeaver了解json文件内部的复#杂嵌套结构 
         

JSON中 值的基础数据类型:数字、字符串、布尔值

注意事项:

1)JSON中没有undefined

2)JSON中,对象属性名,必须用双引号括起来;值的数据类型是字符串时,也需要用双引号

3)JSON中不能有注释

JSON语法

方法作用
json.dumps()将pyhton对象编程为json字符串
json.loads()将json字符串解码成python对象
json.dump()将python中的对象,转化成json存储到文件中
json.load()将文件中的json的格式转化成pyhton对象提取出来

json.dump()和json.dumps()的区别

json.dumps()是把python对象转换成json对象的一个过程,生成的是字符串

json.dump()是把python对象转换成json对象生成一个fp的文件流,和文件有关

##-----json.dumps()---
import json

x = {'name':'无名','age':19,'city':'地球'}
#用dumps将python编码成json字符串
print(json.dumps(x))

#输出:{"name":"\某种编码\","age":19,"city":"\某种编码\"}
#注意:python转json后,字符串都是用双引号包围



##------json.dump()----
#数据存入json文件
import json
numbers = [1,2,3,4,5,6]

filename = 'numberjson'

with open(filename,'w') as f_obj:
    json.dump(numbers,f_obj)

json.dumps()参数

json.dumps(obj, shipkeys = False, ensure_ascii = True, allow_nan = True, cls = None, 
indent = None, separators = None, encoding = "utf-8", default = None, sort_keys = False, **kw)

参数列表

参数名称解释
obj要转化成json的对象
shipkeys默认值是Flase。如果dict的keys内地数据不是python的基本类型,会报错;如果将参数设置为True,则会体哦爱国这类key
ensure_ascii默认输出ASCLL码,如果将这个参数设置成False,就可以输出中文
check_circularFalse:跳过对容器类型的循环检查,循环引用会导致溢出错误
allow_nanFalse:ValueError将序列化超出范围的浮点值(nan,inf,-inf)严格遵守JSON规范
cls
indent参数根据数据格式缩进显示。<层次化输出1>
separator

分隔符,不同dict项之间的分隔符、dict项内key和value之间的分隔符

去除:和 ,后面的空格

encoding
default返回一个可序列化的obj版本或者引发类型错误。默认值指挥引发类型错误
sort_keys告诉编码器,按照字典排序(a-z)输出。如果是字典类型的python对象,就把关键字按照字典排序。< 有序输出>

json.dump()参数

json.dumps(obj, fp, shipkeys = False, ensure_ascii = True, allow_nan = True, cls = None, 
indent = None, separators = None, encoding = "utf-8", default = None, sort_keys = False, **kw)

相比于dumps,多了一个fp文件操作

json.load()和json.loads()的区别

json.loads()是针对内存对象,将字符串转化为字典

json.load()是针对文件句柄,将json格式的字符串转换成字典,从文件中读取读取

#将json转pathon  关键字 loads
import json
username = input('存储输入多数据')
json.loads(username)



#json转python并存储在文件中  关键字 load
import json

filename = 'num.json'
with open(filename) as f_obj:
    data = json.loads(f_obj)
#json.loads()函数接受有效字符串作为输入,并及那个其转换为pyton字典

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值