【Python】三、正则表达式与JSON
正则表达式
一个特殊的字符序列,判断一个字符串是否与其所设定的字符序列相匹配,通常用于检索、替换文本
可由普通字符和元字符组成
- 普通字符:如
Python、Java
这样的具体字符 - 元字符:如
\d、\w、^
这样的抽象字符
字符集
-
用
[]
框出需要匹配的所有项,出现在[]
内的字符为或关系 -
在开头加
^
代表匹配除[]
内的所有字符 -
取某一范围内用
-
连接起始
概括字符集
\d
等价于[0-9]
\D
等价于[^0-9]
\w
概括所有数字+字母+下划线,等价于[A-Za-z0-9_]
\W
表示非单词字符
数量词
- 在
[]
后面加{}
- 花括号内的数字代表匹配的字符数
- 表示一定范围时用
,
分隔上下界
贪婪与非贪婪
- 默认为贪婪,尽可能寻找最大的字符串
- 非贪婪在后面加
?
0次,1次和无限多次
*
前一个字符匹配零次或多次+
前一个字符匹配一次或多次?
前一个字符匹配零次或一次
边界匹配符
- 从字符串开始匹配
^
,从字符串结尾匹配$
组
- 用
()
括起的内容为一组,组内所有字符串共同操作 - 组为且关系
匹配模式参数
re.I
忽略大小写re.S
使.
匹配包括换行在内的所有字符- 用
|
连接
未完...
JSON
JavaScript Object Notation
- 是轻量级的数据交换格式
- 字符串是JSON的表现形式
JSON vs. XML
JSON--易于阅读、易于解析、网络传输效率高、适合跨语言交换数据
反序列化
JSON字符串可以在语言中找到相应的数据结构,在Python中会被解析成字典(反序列化)
import json
json_str = '{"name":"LGH","age":18,"flags":false}'
student = json.loads(json_str)
print(student)
print(type(student)) #dict
JSON数据类型与Python数据类型对应表
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number | int |
number | float |
true | True |
false | False |
null | None |
序列化
将Python的数据类型转换为JSON
import json
student = [{"name": "LGH", "age": 18, "flags": False},
{"sex": "male", "school": "NJUPT"}
]
json_str = json.dumps(student)
print(json_str)
print(type(json_str)) #str