概述

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格式数据的坑...相关推荐

  1. python处理json数据 乱码报错_python操作mysql中文显示乱码的解决方法

    本文实例展示了一个脚本python用来转化表配置数据xml并生成相应的解析代码. 但是在中文编码上出现了乱码,现将解决方法分享出来供大家参考. 具体方法如下: 1. Python文件设置编码 utf- ...

  2. python import xlrd 报错_python读取excel(xlrd)

    一.安装xlrd模块: 1.mac下打开终端输入命令: pip install xlrd 2.验证安装是否成功: 在mac终端输入 python  进入python环境 然后输入 import xlr ...

  3. python word.documents.open报错_Python:读取两种Word文件简述及文件未能引发事件错误...

    Python 中可以读取 word 文件的库有 python-docx 和 pywin32. 优点缺点python-docx跨平台只能处理 .docx 格式,不能处理.doc格式pywin32仅限 w ...

  4. python 读取 docx 报错_python读取docx文件,就是如此简单

    中文编码问题总是让人头疼(尤其是mac本),想要用Python读取word中的内容.用open()经常报错,通过百度搜索+问身边小伙伴发现了Python有专门读取.docx的模块python_docx ...

  5. python爬虫资源路径报错_python爬虫

    一.网络爬虫介绍 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成. 例如,百度.google搜索某关键字时,就是爬取整个互联网上的相关资源,给呈现出来. 实际爬 ...

  6. python -m uiautomator2 init 报错_Python|实现属于自己的数据类型

    我们今天聊聊怎么使用python中的特殊方法来实现属于自己的数据类型. python中有很多的数据类型,比如说数组.字典等等. 我们先来看一个例子,我们平时使用 len() 这个函数的次数很多,它会获 ...

  7. python库下载安装报错_Python 各种库的安装

    在Win7 系统安装的Python 各种库,如:pandas.numpy.scipy等 因为平时使用的是IDE-PyCharm,这里可以直接 [File-Setting-Project:XXX-&qu ...

  8. python调用js文件报错_python - selenium 运行网页中js脚本报错,提示未定义

    问 题 问题1 selenium 运行网易中js脚本报错提示未定义 报错提示如下: driver.execute_script("javascript:amsInit(62800,30315 ...

  9. mysql数据库报错1146_关于MySQL报错:[ERR] 1146

    最近因为电脑重装了系统,导致自己原本的数据库呗覆盖,需要重新重新安装数据库,但是由于我之前数据库版本是mysql 5.0.22,版本太低,所以小编决定安装mysql 5.7.23版本的,一开始没什么问 ...

最新文章

  1. Linux那些事儿之我是Sysfs(7)dentry与inode
  2. VirtualBox32位系统上安装64位系统
  3. Spoken English(021)
  4. 传统外贸不好做,为什么不来做跨境电商?
  5. 九十、Python的GUI系列 | QtDesigner进行界面设计
  6. JQUERY的split
  7. 什么是windows10的Shell Infrastructure Host
  8. cshtml的a标签跳转页面_朋友圈标签来了!热门流量关键词带动视频号、小程序、搜一搜...
  9. 胡寿松自动控制原理第7版笔记和课后答案
  10. TFTP服务器的搭建与使用
  11. 视频教程-SPSS统计自动化-VBA脚本开发-其他
  12. 算法设计——电路布线问题(动态规划)
  13. Bootstrap3 标题样式
  14. 求导计算机在线,求导计算器
  15. [【震撼】珠海中学曝【师生课堂互殴门】]
  16. 朋友买的115资源系统源码
  17. 四、AOSP-开机报错
  18. ElasticSearch文档过期时间设置
  19. 电脑中的快捷键(常用)
  20. dss中文含义_DSS是什么意思?

热门文章

  1. android 已经给权限读取照片 还是提示无法读取照片_iPhone无法访问照片,一招教你解决...
  2. 安徽关节式焊接机器人_上下料机器人的重要性体现在哪里?它有哪些优势?
  3. mysql必学十大必会_MYSQL 学习(一)--启蒙篇《MYSQL必知必会》
  4. w ndows7文档加密取消,win7文件夹怎么加密?windows7文件加密方法
  5. 线程池优化之充分利用线程池资源
  6. 马斯克脑机接口_如何看待“马斯克:脑机接口或一年内植入人脑,可修复任何大脑问题”?...
  7. Linux apt命令
  8. Python 装饰器详解(中)
  9. Weblogic12c T3 协议安全漏洞分析【CVE-2020-14645 CVE-2020-2883 CVE-2020-14645】
  10. mysql客户端重置密码是多少,mysql重置root密码