JSON简介以及如何在Python中使用JSON

什么是JSON?

JSON是"JavaScript Object Notation"的简称,是一种数据交换格式

JSON格式

假设我们有一个对象,这个对象有两个属性:“name”跟“age”。

在JSON中是这样表达的:

{

        "name":"男孩",

        “age”:"19"

}

 敢于想象的同学应该立马想到了,这种格式在Python中不就是字典么??

没错,可以简单理解为另类的字典,因为JSON的数据格式跟字典几乎一毛一样(对应文章标题了)

JSON使用键值对的方式来承载数据,每个键值对之间使用逗号隔开。

JSON键值对的数据类型

在JSON中键一定是一个字符串,必须用双引号括起来!!

而值的类型有七种:

字符串、数值、对象、数组、truefalsenull

 其中,数值类型可以使用科学计数法

例如:

JSON嵌套

在JSON中数据也可以嵌套,即一个JSON数据中可以嵌套N个数据,并且使用“[]”来区分。

我去,这不就是Python中的列表???)

格式:

[元素1,元素2]

例如:

{

        "name":"人",

        "friend":["狗","猫","老鼠"],

        "description":{

                "age":"19",

                "sex":"male"

        }        

}

在Python中解析JSON

在Python中对于JSON的解析,需要我们安装JSON库。

安装方法:

pip install json

对于JSON的解析主要有两种:

1.JSON向Python的数据类型转换

2.Python的数据类型向JSON转换

Python向JSON的数据类型转换

Python转换到JSON使用:“json.dumps”函数。

dumps函数语法:

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf8",default=None,sort_keys=False, **kw)

 其中:

1.ensure_ascii:该项设置为False可以输出中文

2.indent:可以设置json对象的缩进(4代表一个Tab的缩进)

3.separators:通过separators可以设置json对象的分隔符

4.sort_keys:当该项设置为True时,生成的json对象是按键排序的。

例如:

import json

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

data2 = json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)

 上面的代码输出结果为:

{
    "a": "Runoob",
    "b": 7
}

 PS:在Python将某个数据转换为JSON格式后,我们在python中进行type查看数据类型,仍然是str类型,这代表着Python仅仅是将数据改动json的“格式”,并不是在Python中创建了一个json数据类型,在python中没有json数据类型!!!

向某个JSON文件写入数据,我们可以使用:“json.dump”函数,不再是dumps函数。

格式:

dump(要写入的json数据,文件权柄)

JSON向Python转换

JSON向Python转换使用:“json.loads”函数。

例如:

import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print(text)

 输出为:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

 值得注意的是,不同的json对象转换成的Python数据类型也是不同的,详情可以看下表:

对某个JSON文件进行读取,我们可以使用:“json.load”函数,而不是loads函数。

格式:

load(文件权柄)

对于JSON文件操作的示例

存json文件
    info = {'name':'人', 'husband':'人人', 'age':22}
    file = open ('人.json', 'w', encoding='utf-8')
    json.dump(info, filee)
    file.close()
读json文件
    file = open ('人.json', 'r', encoding='utf-8')
    my_info = json.load(file)
    file.close()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是洋洋a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值