python查询mysql decimal报错_python读取MySQL数据表时,使用ast模块转换decimal格式数据的坑...
概述
MySQL中常用的数据格式有tinyint()、int()、float()、double()、decimal() 、varchar、enum()、datetime;小数格式中decimal比较常用,因为更加精确,这里就以decimal为例。
从MySQL中读取了一行数据,内容为:(17479, datetime.datetime(2020, 4, 1, 0, 0), Decimal('23646.00'), Decimal('23646.00'), Decimal('23622.00'),因为需要通过TCP传递给用户,所以把数据转换为字符串,用户端接收到数据后,需要再把字符串还原,还原字符串常用模块ast,例如:ast.literal_evel(),这里就遇到坑了,直接使用ast.literal_evel()会报错,报错的原因呢,就是Decimal(‘23646.00’)这种格式ast模块不认识。
解决方案
首先,Decimal 是decimal模块的一个类,那么先导入。与ast.literal_evel()类似的功能还有一个evel(),直接使用evel()还原数据就不会出问题,这是为什么呢?
evel()与ast.literal_evel()的区别
eval()在做数据转换前并不知道需要转化的数据是否合法的python数据类型。只是在调用函数的时候去计算。如果被计算的内容不是合法的python类型就会抛出异常。而ast.literal_evel()会先判断需要转换的内容是不是合法的python数据类型,如果是则进行转换,否则就不进行转换。因此,平时还是推荐使用ast.literal_eval()
但是遇到了Decimal(‘23646.00’)事件,为省事期间还是直接使用eval()吧。
简单的示例:
from decimal import *
import pandas
abc = ((17479, datetime.datetime(2020, 4, 1, 0, 0), Decimal('23646.00'), Decimal('23646.00'), Decimal('23622.00'), Decimal('23624.00'), 74, 100, 0),(30029, datetime.datetime(2020, 4, 25, 0, 58), Decimal('23926.00'), Decimal('23948.00'), Decimal('23926.00'), Decimal('23946.00'), 38, 20, 0))
abc = repr(abc)
abc = eval(abc)
print(abc)
ast模块的注意事项
ast官方文档
ast模块的比较常用的两个方法parse和literal_evel,从官方文档可以看到这两个方法都有一处警告:足够复杂或是巨大的字符串可能导致Python解释器的崩溃,因为Python的AST编译器是有栈深限制的。
python查询mysql decimal报错_python读取MySQL数据表时,使用ast模块转换decimal格式数据的坑...相关推荐
- python处理json数据 乱码报错_python操作mysql中文显示乱码的解决方法
本文实例展示了一个脚本python用来转化表配置数据xml并生成相应的解析代码. 但是在中文编码上出现了乱码,现将解决方法分享出来供大家参考. 具体方法如下: 1. Python文件设置编码 utf- ...
- python import xlrd 报错_python读取excel(xlrd)
一.安装xlrd模块: 1.mac下打开终端输入命令: pip install xlrd 2.验证安装是否成功: 在mac终端输入 python 进入python环境 然后输入 import xlr ...
- python word.documents.open报错_Python:读取两种Word文件简述及文件未能引发事件错误...
Python 中可以读取 word 文件的库有 python-docx 和 pywin32. 优点缺点python-docx跨平台只能处理 .docx 格式,不能处理.doc格式pywin32仅限 w ...
- python 读取 docx 报错_python读取docx文件,就是如此简单
中文编码问题总是让人头疼(尤其是mac本),想要用Python读取word中的内容.用open()经常报错,通过百度搜索+问身边小伙伴发现了Python有专门读取.docx的模块python_docx ...
- python爬虫资源路径报错_python爬虫
一.网络爬虫介绍 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成. 例如,百度.google搜索某关键字时,就是爬取整个互联网上的相关资源,给呈现出来. 实际爬 ...
- python -m uiautomator2 init 报错_Python|实现属于自己的数据类型
我们今天聊聊怎么使用python中的特殊方法来实现属于自己的数据类型. python中有很多的数据类型,比如说数组.字典等等. 我们先来看一个例子,我们平时使用 len() 这个函数的次数很多,它会获 ...
- python库下载安装报错_Python 各种库的安装
在Win7 系统安装的Python 各种库,如:pandas.numpy.scipy等 因为平时使用的是IDE-PyCharm,这里可以直接 [File-Setting-Project:XXX-&qu ...
- python调用js文件报错_python - selenium 运行网页中js脚本报错,提示未定义
问 题 问题1 selenium 运行网易中js脚本报错提示未定义 报错提示如下: driver.execute_script("javascript:amsInit(62800,30315 ...
- mysql数据库报错1146_关于MySQL报错:[ERR] 1146
最近因为电脑重装了系统,导致自己原本的数据库呗覆盖,需要重新重新安装数据库,但是由于我之前数据库版本是mysql 5.0.22,版本太低,所以小编决定安装mysql 5.7.23版本的,一开始没什么问 ...
最新文章
- Linux那些事儿之我是Sysfs(7)dentry与inode
- VirtualBox32位系统上安装64位系统
- Spoken English(021)
- 传统外贸不好做,为什么不来做跨境电商?
- 九十、Python的GUI系列 | QtDesigner进行界面设计
- JQUERY的split
- 什么是windows10的Shell Infrastructure Host
- cshtml的a标签跳转页面_朋友圈标签来了!热门流量关键词带动视频号、小程序、搜一搜...
- 胡寿松自动控制原理第7版笔记和课后答案
- TFTP服务器的搭建与使用
- 视频教程-SPSS统计自动化-VBA脚本开发-其他
- 算法设计——电路布线问题(动态规划)
- Bootstrap3 标题样式
- 求导计算机在线,求导计算器
- [【震撼】珠海中学曝【师生课堂互殴门】]
- 朋友买的115资源系统源码
- 四、AOSP-开机报错
- ElasticSearch文档过期时间设置
- 电脑中的快捷键(常用)
- dss中文含义_DSS是什么意思?
热门文章
- android 已经给权限读取照片 还是提示无法读取照片_iPhone无法访问照片,一招教你解决...
- 安徽关节式焊接机器人_上下料机器人的重要性体现在哪里?它有哪些优势?
- mysql必学十大必会_MYSQL 学习(一)--启蒙篇《MYSQL必知必会》
- w ndows7文档加密取消,win7文件夹怎么加密?windows7文件加密方法
- 线程池优化之充分利用线程池资源
- 马斯克脑机接口_如何看待“马斯克:脑机接口或一年内植入人脑,可修复任何大脑问题”?...
- Linux apt命令
- Python 装饰器详解(中)
- Weblogic12c T3 协议安全漏洞分析【CVE-2020-14645 CVE-2020-2883 CVE-2020-14645】
- mysql客户端重置密码是多少,mysql重置root密码