数据分类
- 结构化数据
- json
- xml
- 处理方法:转化为python数据类型
- 非结构化数据
- html
- 处理方法:正则表达式、xpath
json模块的使用
- 将json字符串转换成python类型
- json.loads()
- 将json字符串转换成字符串
- json.dumps()
- 参数 保存文件的时候使用
- ensure_ascii=False
- 将中文显示出来
- indent = 4
- 添加换行和每行前缩进4个字符
- ensure_ascii=False
- 参数 保存文件的时候使用
- json.dumps()
- 将包含Json的类文件对象与python数据类型进行转换
- 具有read()或者write()方法的对象就是类文件对象
- f = open(“a.json”, “r”)中f就是类文件对象
- json.load(f) 读
- json.dump(f,数据) 写
- 使用:
import json with open("a.json","r",encoding='utf-8') as f: ret = json.load(f)
json使用的注意点
- json中的字符串都是双引号引起来的
- 如果不是双引号
- eval:能够实现简单的字符串和python类型转换
- replace:把单引号替换成双引号
- 如果不是双引号
- 往一个文件中写入多个json串,不再是一个json串,不能直接读取
- 一行写一个json串,按照行来读取
正则表达式
- re.compile(编译)
- p = re.compile(正则表达式) --如果有使用正则参数的话需要先写到编译中如re.S
- 使用:
- p.findall(需要处理的字符串)
- p.sub(替换之后的内容,带替换的内容)
- p = re.compile(正则表达式) --如果有使用正则参数的话需要先写到编译中如re.S
- pattern.match(从头开始找一个)
- pattern.search(找一个)
- pattern.findall(找所有)
- pattern.sub(替换)
- 正则表达式中添加re.DOTALL或者re.S可以匹配换行符
- 如果正则表达式中加括号的话,返回括号中的内容,如果没有则返回所有
正则表达式的注意点
-
, 能够返回括号中的内容,括号前后的内容起到了定位和过滤的效果re.findall("a(.*)b"),"str")
- 原始字符串r,带匹配字符串中有反斜杠的时候,使用r能忽略反斜杠带来的转义效果
- 点号,默认情况下匹配不到
\n
-
能够匹配空白字符,不仅仅包含空格,还有\s
\t\r\n
python中的原始字符串 r 的用法
- 字符串之前加上
代表原始字符串r
- 作用:忽略转义符
带来的影响\
- 举例:
- r"a\n" --> 代表三个字符,第二个字符
\\
- “a\n” --> 代表两个字符,第二个为
\n
- 如下匹配:
- r"a\nb" == “a\nb” – false
- re.findall(“a\nb”,“a\nb”) – 可以匹配到
- re.findall(r"a\nb",“a\nb”) – 可以匹配到
- re.findall(r"a\nb",“a\nb”) – 匹配不到
- r"a\n" --> 代表三个字符,第二个字符
- 举例:
- 在windows中操作文件路径的时候使用
- 作用:可以是文件路径中的反斜杠不再是有转义符,也不用在写路径的时候使用两个反斜杠了