数据库中使用VARCHAR类型存储分隔符,分隔符有很多种,用户自已输入的,比如逗号、TAB(\t)、^A(\001)等等。

Python从数据库中读取分隔符,然后对对应的文本进行切分。普通字符没有问题,对于特殊字符,则需要进行处理之后才能正确切分。

每个ID对应的分隔符,需要从数据库中读取。

import MySQLdb

from ast import literal_eval

db = MySQLdb.connect("localhost","user","password","mydb",use_unicode=True)

cursor = db.cursor()

cursor.execute("SELECT sep FROM lxw1 WHERE id = 1")

results = cursor.fetchall()

a=''

for row in results:

a = row[0]

db.close()

print(a,type(a))

##output: \001

print(a=="\001")

##output: False

print(a=="\\001")

##output: True

##从数据库中读取出来的其实是加了转义符的

str="a\001b\001c\001d"

print(str.split(a))

##直接用a,也就是"\\001"切分,显然结果不对

##output: ['a\x01b\x01c\x01d']

print(str.split("\001"))

##用"\001"切分,结果正常

##output: ['a', 'b', 'c', 'd']

## 那么,现在的问题其实是需要把加了转义符的"\\001",转换成正确的特殊字符"\001"

b = literal_eval("'%s'" % a)

print(b,type(b))

##output:

print(b=="\001")

##output: True

print(str.split(b))

##output: ['a', 'b', 'c', 'd']

c = "\\t"

##对于TAB分隔符,也是如此,从数据库中读出来,其实是"\\t"

str2 = "1 2 3 4"

print(str2.split(c))

##output: ['1\t2\t3\t4']

print(str2.split(literal_eval("'%s'" % c)))

##output: ['1', '2', '3', '4']

d = ","

str3 = "x,y,z"

print(str3.split(literal_eval("'%s'" % d)))

##output: ['x', 'y', 'z']

Mark一下。

如果觉得本博客对您有帮助,请 赞助作者 。

python字符串变量_Python从变量读取的特殊字符切分字符串问题相关推荐

  1. python字符串拼接变量_python拼接变量、字符串的3种方法

    第一种,加号("+"): print 'py'+'thon' # output python str = 'py' print str+'thon' # output python ...

  2. python函数里面引用外部变量_Python基础 变量进阶

    目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 ...

  3. 把字符串变为变量_python学习第10课--列表和字符串的可变性

    在python中,取得字符串中的某一个位置的字符,跟取得列表中某一个位置的数据,都可以使用这种写法: 变量名[索引] 实例: I_said="Luckey boy" I_said[ ...

  4. python静态变量_python静态变量

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我这里的代码实现了静态变量的装饰器. 但是,我发现如果我多次运行这个函数,每次调 ...

  5. python定义变量_Python基础 变量的基本使用

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 ...

  6. python创建变量_python创建变量

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 创建: 当python变量'赋值'时,根据值类型创建变量,如:a=1引用: 当参 ...

  7. 怎么设置python解释器path变量_python环境变量设置

    在默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. python环境变量设置 1. 首先需要在系统中注册python环境 ...

  8. python 声明变量_Python的变量声明

    Python 与大多数其它语言一样有局部变量和全局变量之分,但是它没有明显的变量声明.变量通过首次赋值产生,当超出作用范围时自动消亡. Example 1. 定义 myParams 变量 if __n ...

  9. python局部变量含义_Python的变量

    1. 概念 Python变量是用于存储值所在的内存位置.换句话说,python程序中的变量将数据提供给计算机进行处理. Python中的每个值都有一个数据类型.Python中不同的数据类型是Numbe ...

最新文章

  1. Softmax和Cross-entropy是什么关系?
  2. intellij gradle java_Java 使用 IntelliJ IDEA Gradle创建新项目报错问题解决方法
  3. 定义和使用含有泛型的类
  4. hive最新UDF函数(2016-10-25)
  5. java(i++和++i的理解)
  6. Java中的工厂方法模式
  7. href 带参数 打开exe_js调用winform程序(带参数)
  8. prometheus altermanager邮件报警
  9. html2canvas 在qq保存失败_QQ的截图功能,没想到这么好用!
  10. 格式化Curl返回的Json字符
  11. 2020年高中计算机考试时间,2020年普通高中信息技术考试今日开考
  12. C#正则表达式(来源:侧身向南边博客)
  13. raise notice oracle,openGauss 循序渐进:通过 raise notice 模拟 Oracle 的 DBMS_OUTPUT
  14. 董文永武汉大学计算机学院,董文永 - 教师简历 CV- Computer School of Wuhan University...
  15. 什么时候你想逃离北上广?
  16. 正则表达式匹配,2位数字,单个字符-华图在线试题修改
  17. python plot坐标轴显示比例一致_绘图,x轴和y轴的比例相同
  18. HDOJ 5144 NPY and shot 简单物理
  19. NUC的型号说明及其他的一些信息
  20. 教程 | 阿克曼结构移动机器人的gazebo仿真(二)

热门文章

  1. img2txt(二)
  2. AfxGetApp用法
  3. boost学习之BOOST_PP_SEQ_FOR_EACH_R
  4. sizeof(class)分析
  5. js学习(three.js脚本)
  6. 嵌入式操作系统内核原理和开发(任务创建和堆栈溢出检查)
  7. acm c 和java如何取舍,ACM中使用JAVA语言的优缺点介绍
  8. python socket 主动断开_Python网络编程tcp详解(基础篇十四)
  9. ajax communication failed,Extjs4,等待ajax请求
  10. python索引例子_谈谈python中的索引