json和Python的交互
内存和内存的交互
loads和dumps
内存和磁盘交互
load和dump
举例
# coding:utf-8
import json
# json字符串必须严格符合json格式 必须是双引号
data = '{"key":"furuiyang"}'
# 将json字符串转化为Python字典
dict_data = json.loads(data)
print(dict_data)
print(type(dict_data))
print("-"*50)
# 将Python字典转化为json字符串
str_data = json.dumps(dict_data)
print(str_data)
print(type(str_data))
print("-"*50)
data = {"name":"furuiyang"}
# 创建类文件对象
f = open('name.json','w')
json.dump(data,f,ensure_ascii=False)
print("-"*50)
f = open('name.json','r')
dict_data = json.load(f)
print(dict_data)
print(type(dict_data))
正则匹配
基本使用
# coding:utf-8
import re
data = '广州哈哈哈'
print(re.findall('广州',data))
print("*"*50)
data = 'a\nb'
print(re.findall('a.b',data))
print(re.findall('a.b',data,re.DOTALL))
print(re.findall('a.b',data,re.S))
print("*"*50)
# 转义
data = 'helloa|bworld'
print(re.findall('a|b',data))
print(re.findall('a\|b',data))
print("*"*50)
# 范围
data = 'abc_adc'
print(re.findall('a[bd]c',data))
print(re.findall('abc|adc',data))
print("*"*50)
data = 'ksdhf 213546u65 aksdufg sdhfjksd '
print(re.findall('\d+?',data))
print(re.findall('\d+',data))
print("*"*50)
print(re.findall('\D',data))
print('*'*50)
print('匹配空格')
print(re.findall('\s',data))
print('匹配非空格')
print(re.findall('\S',data))
print('匹配所有字母数字和下划线')
print(re.findall('\w',data))
print('匹配所有非字母数字和下划线')
print(re.findall('\W',data))
print('*'*50)
print('使用compile')
print('先使用compile把匹配规则传入 然后在现成的匹配规则中传入要匹配的数据')
data = 'a\nb'
pattern = re.compile('a.b',re.S)
print(pattern.findall(data))
print('分组匹配各个结果 结果集合为元组')
print(re.findall(r'a(.*)b(c)','a\nbc',re.S))