1.起因

在做一个自动打卡的玩意。登录会得到那个平台一系列的信息。我又不想专门修改、增加数据库字段来存放,所有打算直接将返回的JSON数据保存到一个MySQL字段中。

内容肯定不能直接放,考虑下比如数据注入的问题,对吧,容易出问题,所有我是打算将JSON数据转为base64编码的格式。

先写一个专门的编码工具函数

def Base64_encode(s):
res = str(base64.b64encode(s.encode("utf-8"))).replace("b'","")[:-1]
return res

str(base64.b64encode(s.encode("utf-8"))) 得到的是b'xxx'的文本,我不想要b'和后面的',所有要替换到,然后数据库操作的话如下:

    try:
cur, db = db_connect()
except:
return {"code": 33060, "msg": "连接数据库失败", "data": {}}
try:
sql = "update t_info set `token`='%s',`uid`='%s',`planids`='%s',`moguNo`='%s' where `gaccount`='%s'"%(Base64_encode(json.dumps(user_token)),user_id,Base64_encode(json.dumps(plan_ids)) ,moguNo,tel)
print("\n",sql,"\n")
result = cur.execute(sql)
except Exception as e:
print(e)
return {"code":-1,"msg":"发生了错误"}

注意长度问题噢!varchar(255)容易装不下,所有太长了用text类型来装。

然后就是解码

def Base64_decode(s):
return base64.b64decode(s).decode("utf-8")

总结一下:

def Base64_encode(s):
res = str(base64.b64encode(s.encode("utf-8"))).replace("b'","")[:-1]
return res def Base64_decode(s):
return base64.b64decode(s).decode("utf-8")

【Python】【MySQL】Python将JSON数据以文本形式存放到MySQL的Text类型字段中的更多相关文章

  1. python中级---->pymongo存储json数据

    这里面我们介绍一下python中操作mangodb的第三方库pymongo的使用,以及简单的使用requests库作爬虫.人情冷暖正如花开花谢,不如将这种现象,想成一种必然的季节. pymongo的安 ...

  2. python#读csv,excel,json数据

    #读csv,excel,json数据 with open('E:\\test\\xdd.csv','r') as f: for line in f.readlines(): print(line) i ...

  3. Dapper操作MySQL数据库获取JSON数据中文乱码

    前言 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正. Dapper获取J ...

  4. JavaBean和json数据之间的转换(二)含有date类型的JavaBean

    1.前言 上次讲了简单的JavaBean和json格式之间的转换,代码很简单,但是实际过程中,往往用到的JavaBean都是比较复杂的,其他的字段还好,如果JavaBean中包含了date类型的字段, ...

  5. 【MySQL】使用Length和Cast函数计算TEXT类型字段的长度

    背景: 前段时间,业务需要,为了快速让解析的Excel入库,所以把不是很确定的字段全部设置成了TEXT. 今天需要进行表结构优化,把字段长度控制在合适的范围,并尽量不使用TEXT类型. -- 计算长度 ...

  6. 往MySQL数据库datetime类型字段中插入数据库的当前时间

    代码: StringBuilder sb = new StringBuilder(); sb.append(" insert into uosdetailfile ("); sb. ...

  7. python 读取单所有json数据写入mongodb(单个)

    <--------------主函数-------------------> from pymongo import MongoClientfrom bson.objectid impor ...

  8. AFNetworking 2.0 获取json数据时,返回 NSLocalizedDescription=Request failed: unacceptable content-type: text/html, 解决方法.

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSe ...

  9. python爬虫——建立IP池,将可用IP存放到redis

    直接上代码,每行代码后面都有注释 import urllib.request import urllib import re import time import random import sock ...

  10. 动态的把固定格式的json数据以菜单形式插入

    var root=$("#side-menu"); $(menuData).each(function(i,n){ var top1Li=$("<li>< ...

随机推荐

  1. Android Qcom USB Driver学习(十一)

    基于TI的Firmware Update固件升级的流程分析usb appliction layers的数据 USB Protocol Package ①/② map to check password ...

  2. USB PD和USB TYPE-C 的区别

    USB Power Delivery (USB PD) 和 USB Type-C 是两个不同但相关的技术标准,它们在功能和应用上有所区别. 1. USB Type-C 连接器标准: USB Type- ...

  3. Android平台下的cpu利用率优化实现

    目录 背景 CPU调频 概念 实现 验证 线程CPU亲和性 概念 亲和性控制 API 应用层控制实现 验证 线程优先级 概念 实现 验证 背景 为了进一步优化APP性能,最近针对如何提高应用对CPU的 ...

  4. vue前端开发仿钉图系列(3)右侧画点线面的开发详解

    项目开发是完全仿照钉图的功能,参照钉图的逻辑和高德地图的参考手册以及aip文档,一点点的把功能做出来并呈现最后的效果.选中画点,在地图上获取经纬度并进行反地理编码,添加marker并弹出右侧编辑页面, ...

  5. 一文读懂 Prometheus 长期存储主流方案

    嘉宾 | 霍秉杰 整理 | 西京刀客 出品 | CSDN 云原生 Prometheus 作为云原生时代崛起的标志性项目,已经成为可观测领域的事实标准.Prometheus 是单实例不可扩展的,那么如果 ...

  6. Kubernetes 集群中 Ingress 故障的根因诊断

    作者:scwang18,主要负责技术架构,在容器云方向颇有研究. 前言 KubeSphere 是青云开源的基于 Kubernetes 的云原生分布式操作系统,提供了比较炫酷的 Kubernetes 集 ...

  7. 相机系统 GLFW OPENGL

    目录 0. 前言 1. 世界坐标系 2. GLFW 窗口坐标系 与 坐标系变换 3. 相机是什么东西 4. 相机的平面位移(上下左右) 5. 相机的聚焦点环绕(球形环绕 ArcBall Orbit) ...

  8. 在vue中引入外部的css文件

    在vue中引入外部的css文件在项目的src文件下,新建一个style文件夹,存放css文件. 1. 全局引入将外部的css文件放到style文件下,引入外部文件只需在main.js文件中 impor ...

  9. lnmp状态监控自动重启服务脚本sh

    #!/bin/bash ###获取当前时间 time="$(date +"%Y%m%d-%H:%M")" ###查看fpm服务是否运行 i=`netstat - ...

  10. 4年经验来面试20K的测试岗,连基础都不会,还不如招应届生。

    公司前段时间缺人,也面了不少测试,结果竟然没有一个合适的.一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望.看简历很多都是3.4年工作经验,但面 ...