《实战Web安全测试视频课程专题第四阶段项目实战》最新

1.json字符串转为字典 json.load // json.loads

两个方法功能类似,可选参数也相同,最大的区别在于:
json.load方法接受的输入,即第一个参数,是包含json数据的文件对象,如open方法的返回对象。
json.loads接受的输入是json字符串,而非文件对象。从输入类型的区别也可以看出两者的使用场合。

2.字典转换为json。json.dump / json.dumps

dump第一个参数是对象字典,第二个参数是文件对象,主要是将字典对象存到文件,可以直接将转换后的json数据写入文件 .
dumps第一个参数是对象字典,其余都是可选参数。

3.dump和dumps参数

ensure_ascii: 默认为True,保证转换后的json字符串中全部是ascii字符,非ascii字符都会被转义。如果数据中存在中文或其他非ascii字符,最好将ensure_ascii设置为False,保证输出结果正常。

indent: 缩进,默认为None,没有缩进,设置为正整数时,输出的格式将按照indent指定的半角空格数缩进,相当实用。

separators: 设置分隔符,默认的分隔符是(’,’, ': '),如果需要自定义json中的分隔符,例如调整冒号前后的空格数,可以按照(item_separator, key_separator)的形式设置。

sort_keys : 默认为False,设为True时,输出结果将按照字典中的key排序。

4.例子:

注意: JSON的数据需要用双引号来包围,不能使用单引号,否则会用loads会失败。

import json
a_str = '[{"name":"Bob","age":"20","gender":"male"},\
          {"name":"Xiaohong","age":"23","gender":"female"}]'  #创建一个字符串

print(type(a_str))

data = json.loads(a_str)  #使用json中的load方法,将字符串转为Json对象。此处为列表
print(data)
print(type(data))
1
2
3
4
5
6
7
8
9

接下来就可以按列表的操作来处理了。
调用dumps()来输出JSON,例如将上例写入文本:

import json

data = [{"name":"Bob","age":"20","gender":"男"},\
        {"name":"Xiaohong","age":"23","gender":"女"}]

with open('data.json','w') as file:    # 如果不存在data.json,则新建
     file.write(json.dumps(data,indent=2,ensure_ascii=False))   #indent = 2 缩进两字符,ensure_ascii=False 输出中文
1
2
3
4
5
6
7
也可以使用dump来存

with open('data.json','w') as file:    # 如果不存在data.json,则新建
     json.dump(data,file,indent=2,ensure_ascii=False))   #indent = 2 缩进两字符,ensure_ascii=False 输出中文
1
2
此处就成功保存为json文件

读取json文件,从json文件中读取内容存入python对象,可以用load:

with open('data.json', 'r', encoding='utf-8') as filer:
     people = json.load(filer)   
           
     filer.close()
1
2
3
4
当然也可以用loads()

with open('data.json', 'r', encoding='utf-8') as filer:
     a_str = filer.read()
     people = json.loads(a_str)
     print(people)
1
2
3
4
简单来说loads和dumps是对json对象来说,一般是字典,列表之类的。
load和dump是对json文件。
--------------------- 
作者:木子偉 
来源:CSDN 
原文:https://blog.csdn.net/qq_43774897/article/details/88954302 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/weixin_44961199/article/details/90030058