总结
- json数据 - 是一种通用的数据格式,主要用于不同语言之间的数据传输
"""
json数据格式要求:
1.有且只有一个数据
2.唯一的这个数据必须是json支持的数据类型的数据
json支持的数据类型:
数字类型 - 包含所有的数字,表示的时候直接写。例如说:90、 1.23、 -12、 3e4
字符串 - "", 用双引号引起来的数据(只能是双引号), 例如说:"你好", "hello", "abc\n123"
bool - 只有 true 和 false 两个值, 表示的时候直接写。例如: true、 false
空值 - null
数组 - 相当于列表、表示方式一样,例如:[元素1, 元素2, ...]
字典 - {键一: 值一, 键二: 值二}, 键只能是字符串
"""
"""
json -> python
数字 int、float
字符串 str(可能会将双引号变成单引号)
布尔 bool, true -> True 、 false -> False
null None
数组 列表(list)
字典 字典(dict)
json.loads(json格式的字符串) - 将json格式的字符串中年的内容转换成python数据
json格式的字符串 - 指的是字符串内容是json数据的字符串。(字符串去掉引号后本身就是一个合法json数据的字符串)
'abc' - 不是
"abc" - 不是
'"abc"' - 是
'true' - 是
"""
import json
result = json.loads('100')
print(result, type(result))
result = json.loads('{"name": "小明", "age": 12}')
print(result, type(result))
"""
python -> json
int、float 数字
str 字符串(引号会变成双引号)
bool 布尔:True -> true False -> false
None null
list、tuple 数组
dict 字典(key会加双引号)
json.dumps(python数据) - 将python数据转换成json格式的字符串
"""
result = json.dumps(100)
print(result, type(result))
result = json.dumps([100, 'abc', True, None])
print(result, type(result))
result = json.dumps({'a': 100, 10: 20, 30: 40})
print(result, type(result))
"""
方式一: - 捕获所有类型的异常
try:
代码段1(需要捕获异常的代码)
except:
代码段2(捕获异常后会执行的代码)
其他代码
执行过程:先执行代码段1,如果执行过程没有出现异常不会执行代码段2,直接执行后面的其他语句;
如果执行代码段1的时候出现异常,直接执行代码段2,执行完代码段2再执行后面的其他语句。
方式二: - 捕获指定类型的异常
try:
代码段1(需要捕获异常的代码)
except 异常类型:
代码段2(捕获异常后会执行的代码)
其他代码
方式三: - 同时捕获多种异常, 针对不同的异常做相同的处理
try:
代码段1
except(异常类型1, 异常类型2, 异常类型3, ...):
代码段2
方式四: - 同时捕获多种异常,然后针对不同的异常做不一样的处理
try:
代码段1
except 异常类型1:
代码段11
except 异常类型2:
代码段22
except 异常类型3:
代码段33
"""
print('============方式1================')
print('===========方式2==========')
"""
try:
需要捕获异常的代码段
except:
捕获到异常后需要执行的代码段
finally:
代码段
finally后面的代码段不管try后面发生了什么都会执行:
1)try后面的代码没有异常,代码段会执行
2)try后面的代码出现异常被捕获到,代码段会执行
3)try后面的代码出现异常有没捕获到,代码段会执行
"""
class AgeError(Exception):
def __str__(self):
return '年龄值错误,年龄的有效范围时0~200!'
age = 233
if age > 200 or age < 0:
raise AgeError
import re
from re import fullmatch
result = fullmatch(r'abc.', 'abck')
print(result)
result = fullmatch(r'1..2', '1ll2')
print(result)
re_str = r'abc\d'
result = fullmatch(re_str, 'abc2')
print(result)
re_str = r'x\Dy'
result = fullmatch(re_str, 'x^y')
print(result)
re_str = r'abc\s123'
result = fullmatch(re_str, 'abc\n123')
print(result)
re_str = r'abc\S123'
result = fullmatch(re_str, 'abc)123')
print(result)
re_str = r'x[1mn]y'
print(fullmatch(re_str, 'x1y'))
print(fullmatch(re_str, 'xmy'))
print(fullmatch(re_str, 'xny'))
re_str = r'x[mn\d]y'
print(fullmatch(re_str, 'x1y'))
print(fullmatch(re_str, 'xmy'))
re_str = r'x[1-7]y'
print(fullmatch(re_str, 'x5y'))
re_str = r'x[A-Z]y'
print(fullmatch(re_str, 'xAy'))
re_str = r'x[\da-zA-Z]y'
print(fullmatch(re_str, 'xfy'))
re_str = r'x[,\da-z?]y'
re_str1 = r'x[^a-z]y'
print(fullmatch(re_str1, 'xAy'))