Python之json模块
一、JSON简介
概述:
JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。
特点:
json独立于语言 json具有自我描述性,更加理解 json比xml更小、更快、更易理解
爬虫经常会获取接口数据,接口数据就是json格式
语法格式:
{key:value1, key2:value2} 键值对形式
格式1:JSON 对象
对象是一个无序的“‘名称/值’对”集合。一个对象以{左括号开始,}右括号结束。每个“名称”后跟一个:冒号;“‘名称/值’ 对”之间使用,逗号分隔。
{"name": "小李", "sex": 男}
- 1
格式2:JSON 数组
和普通的 JS 数组一样,JSON 表示数组的方式也是使用方括号 []。
{
"student":
[
{"name": "小李", "sex": "男"},
{"name": "小丽", "sex": "女"},
{"name": "小王", "sex": "男"}
]
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
注意事项:
- json的键值对的键部分,必须用双引号包裹,单引号都不行(所以如果在键中出现了关键字,也被字符化了),而js中对象没有强制要求(所以在键中不允许出现关键字)。
- json的键值对的值部分,不允许出现函数function,undefined,NaN,但是可以有null,js中对象的值中可以出现。
- json数据结束后,不允许出现没有意义的逗号
二、json模块
json模块是python内置的库,在使用的时候直接导入就可以。
json模块的操作使用相对较为简单,该模块只有四个方法dump()、load()、dumps()、loads()。
作用:
json模块的主要功能是将序列化数据从文件里读取出来或者存入文件。其中dump()是将数据存入文件中,load()是用于读取文件。而dumps()和loads()是对python对象进行操作。dumps()是将python对象编码成json字符串。loads()是将json字符串解码成python对象。
方法:
(1) json.dumps()
将python数据类型转换为json格式的字符串
import json
# Python字典
person = {"name": "小李", "sex": "男", "tel": ["8234588", "1244351"], "isonly": True}
print(person)
print(type(person))
# Python字典转换为json字符串
jsonStr = json.dumps(person)
print(jsonStr)
print(type(jsonStr))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
写入文件的方式:
写入文件的方式:
import json
person = {"name": "小李", "sex": "男", "tel": ["8234588", "1244351"], "isonly": True}
jsonStr = json.dumps(person)
# 打开文件 在文件里写入转成的json串
with open('test.json', 'w', encoding='utf-8') as f:
f.write(jsonStr)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
(2) json.dump()
将python数据类型转换并保存到json格式文件内
import json
person = {"name": "小李", "sex": "男", "tel": ["8234588", "1244351"], "isonly": True}
json.dump(person, open('data.json', 'w'), sort_keys=True, indent=4, separators=(',', ': '))
- 1
- 2
- 3
参数:
sort_keys: 是否排序 indent: 定义缩进距离
separators: 是一个元组,定义分隔符的类型
skipkeys:是否允许json字串编码字典对象时 字典的key不是字符串类型
json.dumps和json.dump的区别:
jump()不需要使用.write()方法,只需要写那个字典,那个文件即可; 而 dumps()需要使用.write()方法写入
如果把字典写到文件里面的时候,dump()好用;但是如果不需要操作文件,或需要把内容存储到数据库和excel,则需要使用dumps()先把字典转换成字符串,再写入
(3) json.loads()
将json格式的字符串转换为python的类型
import json
# Python字典
person = {"name": "小李", "sex": "男", "tel": ["8234588", "1244351"], "isonly": True}
print(person)
print(type(person))
# Python字典转换为json字符串
jsonStr = json.dumps(person)
print(jsonStr)
print(type(jsonStr))
# json字符串再转换为Python字典
python_obj = json.loads(jsonStr)
print(python_obj)
print(type(python_obj))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
文件操作
import json
f = open('data.json', encoding='utf-8')
content = f.read() # 使用loads()方法需要先读文件
python_obj = json.loads(content)
print(python_obj)
- 1
- 2
- 3
- 4
- 5
- 6
(4) json.load()
从json格式的文件中读取数据并转换为python的类型
import json
python_obj = json.load(open('data.json','r'))
print(python_obj)
print(type(python_obj))
- 1
- 2
- 3
- 4
- 5
json.load和json.loads()的区别
loads() 传的是json字符串,而 load() 传的是文件对象
使用 loads() 时需要先读取文件在使用,而load() 则不用
json模块就是用来读写数据的,用法也很简单,需要掌握的也不多。
“Stable Diffusion 简称SD, Substance Designer 简称也是SD, 为什么没有一个用程序化图片编辑的思维驱动AI绘图的流程呢?”
一:ComfyU****I和Stable Diffusion
为啥前面一直在折腾ComfyUI,现在来搞Stable Diffusion呢?
ComfyUI 是一个基于节点流程式的stable diffusion AI绘图工具WebUI**,**你可以把它想象成集成了stable diffusion功能的substance designer, 通过将stable diffusion的流程拆分成节点,实现了更加精准的工作流定制和完善的可复现性。但节点式的工作流也提高了一部分使用门槛。
说白了,就是在stable diffusion上边套了一层基于流程的壳子,让大家看得到,用得起,玩得开心。这样,大家的学习成本降低了.大家看看ComfyUI 和Stable Diffusion界面就明白了。
ComfyUI (Comflowyspace)界面
Stable Diffusion界面
但是为啥还要学Stable Diffusion呢?这个是基础,如果只是简单在ComfyUi出图,学一下Stable diffusion基础就可,咱们不是从里到外都要看看么,这不先来折腾一下。
二:安装和启动
我们选择了可能用的最多的-秋葉大佬的一键启动整合包。它以资源整合、安装方便、界面友好,自动更新、完全免费,深受欢迎。
1.下载安装包
2.解压缩sd-webui-aki-v4.9.1,并且安装“”启动器运行依赖-dotnet-6.0.11.exe
3.把controlnet这个文件夹放在sd-webui-aki-v4.9\extensions\sd-webui-controlnet\models这个文件夹中
4.启动A绘世启动器
5.点击启动,我们可以在这里玩耍了
浏览器中有个url弹出或者输入上图标记的链接
6.这个是秋葉大佬提示的,新手多关注
三:出图看效果
1 girl,looking at the camera,in a park with peach blossoms,the girl is the center of focus,the composition is balanced,including the natural environment,realistic style,HD,8K,soft colors,
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
评论记录:
回复评论: