详解Python中的JSON以及在Python中使用JSON

首先什么是JSON?

      JSON(JavaScript Object Notation, JS 对象简谱,即JavaScript对象表示法) 是一种用于表示结构化数据的流行数据格式。      在服务器和web应用程序之间以JSON格式传输和接收数据是很常见的。

在Python中,JSON以字符串的形式存在(即JSON字符串),例如:

json_str = '{"name":"zhangsan","languages":["Python","Java"]}'

  在文件中存储JSON对象也是很常见的

引入json模块

    要使用JSON(字符串或包含JSON对象的文件),你可以使用Python的json模块。在使用该模块之前,需要先引入它。

import json

Python中解析JSON

   使用json模块解析JSON字符串和包含JSON对象的文件是很容易的。

  例1:  在Python中将JSON解析成dict

使用json.loads()方法来解析JSON字符串。该方法返回一个字典。

import json

person = '{"name":"zhangsan","languages":["Python","Java"]}'
person_dict = json.loads(person)
print(person_dict)
print(type(person_dict))
print(person_dict["languages"])

打印结果, 可以看到,person 是一个JSON 字符串, person_dict 是一个字典。

{'name': 'zhangsan', 'languages': ['Python', 'Java']}
<class 'dict'>
['Python', 'Java']

例2 : 使用Python读取JSON文件

    使用json.load()方法读取一个包含JSON对象的文件。

   当前文件下有一个person.json,它包含一个JSON对象。

# person.json
{
  "name":"lisi",
  "languages":["English","Fench"]
}

  然后来解析这个person.json的json文件

import json

with open('person.json') as f:
    data = json.load(f)

print(data)
print(type(data))

  使用open()函数读取json文件。然后,使用json.load()方法解析文件,该方法会返回一个字典

{'name': 'lisi', 'languages': ['English', 'Fench']}
<class 'dict'>

使用Python将字段转换为JSON字符串

  可以使用 json.dumps()方法将字典转换成JSON字符串。

例3:将字典转换为JSON

import json

person_dict = {
    "name":"xiaowang",
    "age":21,
    "sex":None
}
person_json = json.dumps(person_dict)
print(person_json)
print(type(person_json))

结果:

{"name": "xiaowang", "age": 21, "sex": null}
<class 'str'>

  Python对象及其与JSON的等效转换

  

将JSON写入一个文件

     在Python中将JSON写入文件,我们可以使用json.dump()方法

例4:将JSON写入一个文件

import json

person_dict = {
    "name": "Bob",
    "languages": ["English", "Fench"],
    "married": True,
    "age": 36
}
with open("person.txt","w") as json_file:
    json.dump(person_dict,json_file)

然后就可以看见在当前的文件下有一个person.txt的文件,打开文件,就会看见保存的json数据

为了分析和调试JSON数据,我们可以通过向json.dumps()和json.dump()方法传递额外的参数indent和sort_keys来实现。

例5: 使用Python完美输出JSON

import json

person_string = '{"name": "Bob", "languages": ["English", "Fench"], "married": true, "age": 36}'

# 将json字符串转化为字典
person_dict = json.loads(person_string)

# 完美输出JSON
print(json.dumps(person_dict,indent=4,sort_keys=True))

  参数介绍: indent=4 ,使用了4个空格进行缩进,并且,键值是按升序排序的

                     indent的默认值是None,  sort_keys的默认值为False。

运行之后的结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

还是那个同伟伟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值