【Python】【MySQL】Python将JSON数据以文本形式存放到MySQL的Text类型字段中
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类型字段中的更多相关文章
- python中级---->pymongo存储json数据
这里面我们介绍一下python中操作mangodb的第三方库pymongo的使用,以及简单的使用requests库作爬虫.人情冷暖正如花开花谢,不如将这种现象,想成一种必然的季节. pymongo的安 ...
- python#读csv,excel,json数据
#读csv,excel,json数据 with open('E:\\test\\xdd.csv','r') as f: for line in f.readlines(): print(line) i ...
- Dapper操作MySQL数据库获取JSON数据中文乱码
前言 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正. Dapper获取J ...
- JavaBean和json数据之间的转换(二)含有date类型的JavaBean
1.前言 上次讲了简单的JavaBean和json格式之间的转换,代码很简单,但是实际过程中,往往用到的JavaBean都是比较复杂的,其他的字段还好,如果JavaBean中包含了date类型的字段, ...
- 【MySQL】使用Length和Cast函数计算TEXT类型字段的长度
背景: 前段时间,业务需要,为了快速让解析的Excel入库,所以把不是很确定的字段全部设置成了TEXT. 今天需要进行表结构优化,把字段长度控制在合适的范围,并尽量不使用TEXT类型. -- 计算长度 ...
- 往MySQL数据库datetime类型字段中插入数据库的当前时间
代码: StringBuilder sb = new StringBuilder(); sb.append(" insert into uosdetailfile ("); sb. ...
- python 读取单所有json数据写入mongodb(单个)
<--------------主函数-------------------> from pymongo import MongoClientfrom bson.objectid impor ...
- AFNetworking 2.0 获取json数据时,返回 NSLocalizedDescription=Request failed: unacceptable content-type: text/html, 解决方法.
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSe ...
- python爬虫——建立IP池,将可用IP存放到redis
直接上代码,每行代码后面都有注释 import urllib.request import urllib import re import time import random import sock ...
- 动态的把固定格式的json数据以菜单形式插入
var root=$("#side-menu"); $(menuData).each(function(i,n){ var top1Li=$("<li>< ...
随机推荐
- Android Qcom USB Driver学习(十一)
基于TI的Firmware Update固件升级的流程分析usb appliction layers的数据 USB Protocol Package ①/② map to check password ...
- USB PD和USB TYPE-C 的区别
USB Power Delivery (USB PD) 和 USB Type-C 是两个不同但相关的技术标准,它们在功能和应用上有所区别. 1. USB Type-C 连接器标准: USB Type- ...
- Android平台下的cpu利用率优化实现
目录 背景 CPU调频 概念 实现 验证 线程CPU亲和性 概念 亲和性控制 API 应用层控制实现 验证 线程优先级 概念 实现 验证 背景 为了进一步优化APP性能,最近针对如何提高应用对CPU的 ...
- vue前端开发仿钉图系列(3)右侧画点线面的开发详解
项目开发是完全仿照钉图的功能,参照钉图的逻辑和高德地图的参考手册以及aip文档,一点点的把功能做出来并呈现最后的效果.选中画点,在地图上获取经纬度并进行反地理编码,添加marker并弹出右侧编辑页面, ...
- 一文读懂 Prometheus 长期存储主流方案
嘉宾 | 霍秉杰 整理 | 西京刀客 出品 | CSDN 云原生 Prometheus 作为云原生时代崛起的标志性项目,已经成为可观测领域的事实标准.Prometheus 是单实例不可扩展的,那么如果 ...
- Kubernetes 集群中 Ingress 故障的根因诊断
作者:scwang18,主要负责技术架构,在容器云方向颇有研究. 前言 KubeSphere 是青云开源的基于 Kubernetes 的云原生分布式操作系统,提供了比较炫酷的 Kubernetes 集 ...
- 相机系统 GLFW OPENGL
目录 0. 前言 1. 世界坐标系 2. GLFW 窗口坐标系 与 坐标系变换 3. 相机是什么东西 4. 相机的平面位移(上下左右) 5. 相机的聚焦点环绕(球形环绕 ArcBall Orbit) ...
- 在vue中引入外部的css文件
在vue中引入外部的css文件在项目的src文件下,新建一个style文件夹,存放css文件. 1. 全局引入将外部的css文件放到style文件下,引入外部文件只需在main.js文件中 impor ...
- lnmp状态监控自动重启服务脚本sh
#!/bin/bash ###获取当前时间 time="$(date +"%Y%m%d-%H:%M")" ###查看fpm服务是否运行 i=`netstat - ...
- 4年经验来面试20K的测试岗,连基础都不会,还不如招应届生。
公司前段时间缺人,也面了不少测试,结果竟然没有一个合适的.一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望.看简历很多都是3.4年工作经验,但面 ...