我们在用python处理字符串的时候,难免会遇到被转义的情况。比如我们定义一个字典类型的变量:
data = {“datas”: ‘[{“name”: “菜鸟”}]’}
我们使用json的dumps方法将这个字典转为字符串,
res = json.dumps(data, ensure_ascii=False)
再打印这个res的时候会发现输出的字符串里包含有转义字符,即反斜杠\:
{“datas”: “[{\“name\”: \“菜鸟\”}]”}
这里有两种方法可以去除反斜杠,首先第一种比较简单暴力,直接:
data = res.replace("\\", “”)即可,但是各位在使用中要注意,处理之后的数据是否还能正常使用,因为当处理的数据量很大时,无法确定在其他地方反斜杠是否还有用处,所以这种方法适合数据量小,且没有特殊情况的问题使用。
第二种方法使用eval函数处理,即:
data = eval(res)
打印这个data,会发现{‘datas’: ‘[{“name”: “菜鸟”}]’}反斜杠没有了,原理是eval首先将res这个变量里的字符串引号剥去,然后得到的是一个字典,显然这个是不可以进行计算的,那么它就开始查找这个字典是否是一个变量,然后它一查找,找到了data,于是输出了data里的原始内容。
import json
data = {“datas”: ‘[{“name”: “菜鸟”}]’}
res = json.dumps(data, ensure_ascii=False)
print(res)
data = eval(res)
print(data)
希望对你有所帮助!
我们在用python处理字符串的时候,难免会遇到被转义的情况。比如我们定义一个字典类型的变量:data = {“datas”: ‘[{“name”: “菜鸟”}]’}我们使用json的dumps方法将这个字典转为字符串,res = json.dumps(data, ensure_ascii=False)再打印这个res的时候会发现输出的字符串里包含有转义字符,即反斜杠\:{“datas”: “[{\“name\”: \“菜鸟\”}]”}这里有两种方法可以去除反斜杠,首先第一种比较简单暴力,直接:
python
字符串
去除
转义
字符串
中
有“”“\u0000”,写入EXL是会报错“openpyxl.utils.exceptions.IllegalCharacterErro”
from openpyxl import Workbook
exlfile = "xxxxx.xlsx"
wb = Workbook()
wb.create_sheet("sheet1", index=0)
ws = wb.active
value = "\u0000"
ws['A1'] = value
wb.save(exlf
我是小玉,一个平平无奇的小天才!
python
中
对于
字符串
的表示和其他语言基本一样,都是用string来表示
字符串
,不同的是,
python
在使用
字符串
的时候同样不需要定义。
字符串
的表示:
先举一个例子:
str = "hello world!"
这就是一句
python
的
字符串
表达式。
需要注意的是,在使用
字符串
的时候,我们需要将
字符串
用引号引起来,单引号和双引号均可。
注: 1、这里的引号不能混合使用
str = "hello world!'
2、相同类型的引号不可嵌套使用。
str = "hello "this" world!"
3、引号不可以换行使用。
在我们日常使用
中
经常会配到转义问题,一般字符穿的转义直接使用r''就可以解决,但在面对变量传参时,这种办法就显得很难解决,需要我们使用特殊的函数来解决。
数据写入数据库
一般在写入的数据
中
,如果还有文本数据,里面就可能还有转义的字符,挨个处理显然是不可能的,所以我们就要借用pymysql
中
的pymysql.escape_string()方法对变量进行转义,使文本
中
的转义不影响数据的存储。
文件路径(或者变量)
这个就需要我们使用自己写的变量转义函数来进行操作,我一个写了一个方法,可以根据自己的实际情况增加字
如果输出的
字符串
内包含单引号,那么
字符串
的最外侧就用双引号,反之亦然;如果
字符串
内既包含单引号又包含双引号,那么
字符串
的最外侧就是用三引号
字符串
切片
[M:N:K] M指的是开始位置,N是截止位置,K代表步长,MN可以不填,M不填代表从头开始,N不填代表至结尾为止;
逆序
字符串
的一种写法:[::-1]
字符串
中
的特殊字符转义
当
字符串
中
出现一些 特殊字符,又希望他们保持本来的含义,这时候可以使用转义;
例如
字符串
中
出现双引号
print(这是一个双引号(\)
转义符形成一些组合,表达一些不可打印的含义。例如:
\n 表示换行,光标到下一行的行首
\b表示回退,使当前的光标向前