Python操作SQL中json格式的问题

2023-11-07

1、json中的引号必须使用双引号

(在mysql中双引号和单引号可以互换,但不可混合使用,需成对出现。)
mysql支持存储json格式数据,但是写入时json内容中引号必须使用双引号,否则出现下述错误:

pymysql.err.OperationalError: (3140, ‘Invalid JSON text: “Missing a name for object member.” at position 1 in value for column ‘reviews_2020_copy1.s_index_test’.’)

因此在Python中将dict类型的数据嵌入到SQL中,在mysql中存储为json时,加入判断并使用json模块转化:

if isinstance(value,dict):
    value=json.dumps(value)

在mysql中直接写SQL,值为json:

UPDATE table_name 
SET column1='{"s_index":123456789}' #单双引号互换位置则会报错

2、json中的null值

Python生成带有null值的json:Python中的None等价于json中的null。

>>> dic={'name':'a','age':None}
>>> json.dumps(dic)
'{"name": "a", "age": null}'

3、json.dumps() 与 json.dump(); json.loads() 与 json.load()

json.dumps():将字典转换为json字符串
json.loads():将json字符串转化为字典

json.dump():将字典以json字符串形式写入json文件
json.load() :将json文件以dict形式读取
json.dump()示例:

f_t=open('data/CharData.json','w',encoding='utf-8')
json.dump(dic_all, f_t, cls=NpEncoder,ensure_ascii=False,indent=4)

代码部分参数解释:
1、解决中文写入json文件编码问题:
open()使用encoding=‘utf-8’
dump()使用ensure_ascii=False
2、解决写入文件换行问题:
dump()使用indent=4 (数字也可以定义其他值)
3、解决TypeError: Object of type int64 is not JSON serializable:
原因:json不识别int64数据类型(numpy、DataFrame中数据类型)
解决:
1)自定义数据转换类NpEncoder
2)dump()使用cls=NpEncoder

class NpEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, np.integer):
            return int(obj)
        elif isinstance(obj, np.floating):
            return float(obj)
        elif isinstance(obj, np.ndarray):
            return obj.tolist()
        else:
            return super(NpEncoder, self).default(obj)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python操作SQL中json格式的问题 的相关文章

  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • MySQL如何获取unix时间戳的时间差

    我有一个保存值1506947452的变量 需要使用公式从该日期提取分钟 started data now date 但started date采用unix时间戳格式10位int数字 我以ajax形式收到并需要放入mysql查询i试试这个 S
  • 通过列表理解压平列表列表

    我正在尝试使用 python 中的列表理解来展平列表 我的清单有点像 1 2 3 4 5 6 7 8 只是为了打印这个列表列表中的单个项目 我编写了这个函数 def flat listoflist for item in listoflis
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • if 语句未命中中的 continue 断点

    在下面的代码中 两者a and b是生成器函数的输出 并且可以评估为None或者有一个值 def testBehaviour self a None b 5 while True if not a or not b continue pri
  • 如何计算numpy数组中元素的频率?

    我有一个 3 D numpy 数组 其中包含重复的元素 counterTraj shape 13530 1 1 例如 counterTraj 包含这样的元素 我只显示了几个元素 array 136 129 130 103 102 101 我
  • 对图像块进行多重处理

    我有一个函数必须循环遍历图像的各个像素并计算一些几何形状 此函数需要很长时间才能运行 在 24 兆像素图像上大约需要 5 小时 但似乎应该很容易在多个内核上并行运行 然而 我一生都找不到一个有据可查 解释充分的例子来使用 Multiproc
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • shell-out 值到 md5(加密)函数

    我正在寻找一种解决方案 我正在构建 JSON 记录 并需要在 JQ 中生成一些文本 但将此文本通过管道传输到 MD5 求和函数并将其用作键的值 echo first John last Big jq id first last md5 通过
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 如何为每个屏幕添加自己的 .py 和 .kv 文件?

    我想为每个屏幕都有一个单独的 py 和 kv 文件 应通过 main py main kv 中的 ScreenManager 选择屏幕 设计应从文件 screen X kv 加载 类等应从文件 screen X py 加载 Screens
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户
  • 使用 PHP 将 latin1_swedish_ci 转换为 utf8

    我有一个数据库 里面充满了类似的值 Dhaka 应该是 Dhaka 因为我在创建数据库时没有指定排序规则 现在我想修复它 我无法从最初获取数据的地方再次获取数据 所以我在想是否可以在 php 脚本中获取数据并将其转换为正确的字符 我已将数据

随机推荐

  • MIPS汇编语言实现选择排序算法

    MIPS汇编语言实现选择排序算法 1 流程图 2 C代码 3 MIPS代码 附注释 MIPS汇编语言实现选择排序算法 1 流程图 2 C代码 include
  • c++笔记(一)

    这里写的主要是一些c c 值得注意的地方和c primer笔记 方便以后回顾 复习c 当然会有一些错误 发现后再改正 当形参引用时 数组不能转化为指针 是连接符 当宏定义用多行时常用 1 c中不可以连续赋值 c 可以 如int a b c
  • 数据结构课程设计---------最少换车次数问题

    问题描述 设某城市有n个车站 并有m条公交线路连接这些车站 设这些公交车都是单向的 这n个车站被顺序编号为0 n 1 编号程序 输入该城市的公交线路数 车站个数 以及各公交线路上的各站编号 实现要求 求得从站0出发乘公交车至站n一1的最少换
  • ‘git‘不是内部或外部命令,也不是可运行的程序或批处理文件。

    一 出现问题 git 不是内部或外部命令 也不是可运行的程序或批处理文件 出现这个问题主要是git的环境变量没有设置 二 解决问题 首先右键我的电脑点击属性 在点击高级系统设置 点击环境变量 在下面这栏点击path设置环境变量 添加这三个环
  • mysql 获取倒数第二_如何从MySQL中的表中获取倒数第二条记录?

    要获得MySQL中最后一个记录 即倒数第二个 之前的记录 您需要使用子查询 语法如下SELECT FROM SELECT FROM yourTableName ORDER BY yourIdColumnName DESC LIMIT 2 a
  • python opencv 二值化 计算白色像素点

    贴部分代码 usr bin env python coding utf 8 import cv2 import numpy as np from PIL import Image area 0 def ostu img global are
  • Flutter audioplayers使用小结

    简介 audioplayers是一个可以支持同时播放多个音频文件的Flutter的库 用法也是相当的简单 AudioPlayer audioPlayer new AudioPlayer await audioPlayer play url
  • SqlServer的varchar最大长度

    SqlServer的varchar最大长度是8000 总会遇到这种字符串截断问题 但是在给表字段长度添加时最好还是不要添加为max 能用varchar n 的话就不必要去要求varchar max 性能问题 项目上确实出现过问题 这个博主的
  • 1115 裁判机

    1114 全素日 有一种数字游戏的规则如下 首先由裁判给定两个不同的正整数 然后参加游戏的几个人轮流给出正整数 要求给出的数字必须是前面已经出现的某两个正整数之差 且不能等于之前的任何一个数 游戏一直持续若干轮 中间有写重复或写错的人就出局
  • python数据分析:用户消费情况数据分析

    本次分析数据介绍 数据为某奶茶店2018年1月 2019年6月的销售数据 共计69 659项数据 用户共计23 570名 数据集共4个字段 user id 用户id order id 购买日期 order prodect 购买产品数 ord
  • 为什么java中类名要与文件名一致

    学习java程序过程中碰到了文件名与类名不一致问题 出现了报错 后面查了一下资料才知道为什么文件名与类名要一致 Java是被解释执行的 它在运行时并不是将所有的class文件全都放到内存中 而是在遇到import的时候才去相应的文件目录找相
  • 概率论与数理统计(3)--指数分布函数及其期望、方差

    1 什么是指数分布 设随机变量X具有如下形式的密度函数 那么则称X服从参数为 的指数分布 记为X EXP 指数分布的分布函数为 2 指数分布的期望和方差 数学期望 如果X 服从参数为 gt 0 的指数分布 那么指数分布X EXP 的数学期望
  • Conda 常用指令 (Mac)【下载 安装 环境配置 查看 创建 激活 配置cuda 拷贝环境】

    本文旨在介绍用conda配置一个新的深度学习环境的全过程 下载Anaconda 在 官网 中下载与python版本匹配的Anaconda Python与Anaconda版本匹配如下 图片源自 该博客 在本例中我下载的 Anaconda3 2
  • 12篇顶会论文,深度学习时间序列预测经典方案汇总

    早期的时间序列预测主要模型是诸如ARIMA这样的单序列线性模型 这种模型对每个序列分别进行拟合 在ARIMA的基础上 又提出了引入非线性 引入外部特征等的优化 然而 ARIMA类模型在处理大规模时间序列时效率较低 并且由于每个序列分别独立拟
  • aistudio提示找不到包,通过直接下载整个PaddleNLP的repo文件执行

    git clone https gitee com AI Mart PaddleNLP cd PaddleNLP python setup py install pip install regex nltk beautifulsoup4 当
  • mysql 同步失败_线上MYSQL同步报错故障处理方法总结

    前言 在发生故障切换后 经常遇到的问题就是同步报错 下面是最近收集的报错信息 记录删除失败 在master上删除一条记录 而slave上找不到 Last SQL Error Could not execute Delete rows eve
  • C语言执行过程

    系列1 C语言执行过程 系列2 C程序方法调用 系列3 CS IP 寄存器 本文中涉及的代码地址 analyseExecutionOfC 文件结构 analyse execution of c compilePreProcessSource
  • [失败] 网易云音乐爬虫分析

    网易云音乐js破解分析 大家好 我是W 最近在搞毕设相关的材料 所以很久没有敲代码和写博客了 刚好 一个同学有个需求 要获取网易云音乐的歌曲id和封面地址 然后用外链播放 相当于在他的系统里加一个小功能 锦上添花 所以来找到我 刚开始我觉得
  • module xxx has no attribute

    授人以鱼不如授人以渔 希望这篇文章可以帮助大家解决一系列类似的问题 大家耐心看下去 肯定会有收获 今天看见一篇博客解决问题的思路给了我很大的启发 于是我就将他记录下来 大家可以一起学习一下 在文章的最后我也会挂出他的链接 这里具体为具体错误
  • Python操作SQL中json格式的问题

    1 json中的引号必须使用双引号 在mysql中双引号和单引号可以互换 但不可混合使用 需成对出现 mysql支持存储json格式数据 但是写入时json内容中引号必须使用双引号 否则出现下述错误 pymysql err Operatio