Backend - Python 序列化

目录

一、作用1:代码块存入数据库

二、作用2:前后端传递数据

(一)前端

1. JSON.stringify()

2. JSON.parse()

(二)后端

1. json.dumps()

(1)作用

(2)写法

(3)例子

2. json.loads()

(1)作用

(2)理解

(3)json.loads() 问题:JSONDecodeError('Expecting property name enclosed in double quotes: line 1 column 2 (char 1)')

3. python 的 requests 库的 json()

(1)作用

(2)例子

(三)前后端的传值格式

1. 前端传后端时

2. 后端传前端时

三、查看对象格式


序列化:将内存中的不可持久化和传输对象,转换为可方便持久化和传输对象的过程。

一、作用1:代码块存入数据库

        将一段方法的代码块,进行序列化,完整的存入到数据库中。

        当调用数据库的这段序列化数据时,依旧可以执行这个代码块。

二、作用2:前后端传递数据

(一)前端

1. JSON.stringify()

        将一个 JavaScript 对象或值编码为json字符串。 (包成JSON)

2. JSON.parse()

        用来解析json字符串,还原由字符串包裹的JavaScript值或对象。 (解除JSON)

注意:前端转换JSON格式时,是大写的JSON

(二)后端

1. json.dumps()

(1)作用

        将 Python 对象编码为json字符串。(包成JSON)

        常用于后端向前端传递数据。

(2)写法

        使用 json.dumps(),而不是json.dump()。

        前者是字符串,后者是文件流。

(3)例子
import json
mydict = {"num": 123}
res = json.dumps(mydict) # 即可获得字串数据

2. json.loads()

(1)作用

        将json字符串解码为 Python 数据类型。(解除JSON)

        常用于后端接收前端传递的数据。

(2)理解

        例如:前端的阵列 AA ,使用 JSON.stringify() 编码  ->  得到 json 格式的值 BB ( str 格式,包裹着阵列) ->  后端接收的BB,使用 json.loads() 解码  ->  得到列表值CC。

(3)json.loads() 问题:JSONDecodeError('Expecting property name enclosed in double quotes: line 1 column 2 (char 1)')

        原因:

        json.loads() 里的值若是字串包字典,则字典中的key,必须有双引号!!无论是单引号,还是无引号,都会报错。

        解决:

        若字串里的字典格式无误,只是单引号的问题,则将单引号转换为双引号

import json 
mystr.replace("\'", "\"")  # 先将'单引号转变为"双引号
res = json.loads(mystr)

3. python 的 requests 库的 json()

(1)作用

        处理API请求返回后的数据。

(2)例子
import requests
response = requests.get('http://www.XXX.com', params=data)  # 获得API调用后得到的结果数据
res = response.json()  # 将API结果数据字串化

(三)前后端的传值格式

1. 前端传后端时

        无论是“阵列”或是“字典”,都最好用JSON格式包裹。

2. 后端传前端时

        一般用JsonResponse。或者在前端ajax处加一属性:dataType:'json' 。

        作用:前端统一把后端回传的data数据类型看成JSON格式、然后用JSON.parse()处理。

参考另一篇文章:Backend - Django JsonResponse & HttpResponse-CSDN博客

三、查看对象格式

使用网上工具:http://json.parser.online.fr/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/201737.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

algo-多数排序

多数排序在leetcode只是一个简单题,但是衍生出来的多种解法却非常有意思 首先是最容易想到的hash和排序算法,接着是 随机化 从概率来讲一个随机挑选一个元素并验证都很大概率是众数 func majorityElementRandom(nums []int) int {n : len(nums)mc : …

RAM、ROM、flash、eMMC

RAM:Random-Access Memory的缩写,意思为“随机存取存储器” ROM:Read-Only Memory的缩写,意思为“只读存储器” 总体来看:都是存储器 最大区别:ROM可以在停止供电的时候仍然保存着数据;RAM在…

又有狗咬娃!江西8岁男童买早餐被狗扑咬,满脸血缝了90多针!

位于江西省吉安市吉安县实验小学门口,一名年仅8岁的男童在去买早餐的路上遭遇了一场恐怖的袭击。据报道,孩子是在清晨的买早餐路上被一只恶狗扑倒咬伤的,伤口深可见骨。 孩子的母亲悲痛欲绝地描述了当时的情景,孩子被咬伤后躺在地…

ky10 x86 一键安装wvp gb28181 pro平台

下载代码 git clone https://gitcode.net/zengliguang/ky10_x86_wvp_record_offline_install.gitfinalshell mobaxterm 修改服务器ip 查看服务器ip ip a 在脚本文件中修改服务器ip 执行安装脚本 切换到root用户 sudo su cd ky10_x86_wvp_record_offline_install/ sourc…

智能优化算法应用:基于黑寡妇算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于黑寡妇算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于黑寡妇算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.黑寡妇算法4.实验参数设定5.算法结果6.参考文献7.…

Git 应用 -- 多人协作开发场景1

目录 1. 既查看本地仓库的分支,又查看远程仓库的分支: git branch -a (但是远程的分支只能查看,不能直接切换到远程的分支上) 2. 本地的分支和远程的分支建立连接:git checkout -b [分支名] [要连接远程的…

B027-MySQL增强

目录 多表查询为什么要用多表查询?笛卡尔积和内连接消除笛卡尔积外键数据库内连接练习左连接查询和右连接查询等值连接out join自连接子查询 数据操作(DML)数据的插入数据的删除数据的修改 数据库的备份与恢复Dos命令行窗口导出Dos命令行窗口导入Navicat导出Navicat…

if与switch语句的运用—输出成绩

1.给出一个百分制成绩&#xff0c;要求输出成绩等级A、B、C、D、E。90分以上为A&#xff0c;81-89分为B&#xff0c;70-79分为C&#xff0c;60&#xff0d;69分为D&#xff0c;60分以下为E。 if语句实现 #include <stdio.h> int main() { int score; printf(&qu…

146. LRU 缓存 --力扣 --JAVA

题目 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否则返回…

基于SSM的图书馆管理系统运行部署教程

基于SSM的图书馆管理系统运行部署教程 1、下载2、数据准备-导入sql文件3、项目导入idea4、项目运行5、测试6、日志乱码问题 1、下载 源码下载地址&#xff1a; https://download.csdn.net/download/weixin_44796239/85072348下载之后&#xff0c;会得到一个压缩包&#xff1a; …

LeetCode-470. 用 Rand7() 实现 Rand10()【数学 拒绝采样 概率与统计 随机化】

LeetCode-470. 用 Rand7 实现 Rand10【数学 拒绝采样 概率与统计 随机化】 题目描述&#xff1a;解题思路一&#xff1a;首先说一个结论就是(rand_X() - 1) Y rand_Y() > [1,X*Y]&#xff0c;即可以等概率的生成[1, X * Y]范围的随机数&#xff0c;其实就像军训的时候报数…

抖店怎么对接达人带货?达人渠道整理,实操详解!

我是电商珠珠 很多人在抖店开通后&#xff0c;按照流程去正常的跑自然流量&#xff0c;再去找达人带货让自己店铺的流量增多&#xff0c;得到相应的曝光。 但是一些新手小白并不知道从哪去找达人&#xff0c;或者说不知道怎么去筛选达人。 一开始所有人都想着去找头部主播&a…

MyBatis-Plus动态更改查询的表名或字段名

部分业务可能会需要根据参数不同而查询不同的表&#xff0c;或者查询不同的字段。使用MyBatis-Plus可以很方便地实现这种需求&#xff0c;甚至不需要使用.xml文件。 三张数据表user、user1、user2内容都如下&#xff1a; idnameagesex1张三1812李四<null><null>3&…

ubuntu启动kafka报错Could not create the Java Virtual Machine.

网上有两种方式&#xff0c;但是需要具体看自己的错误信息&#xff0c;我的错误信息如下: 这里大概是说要写入日志无权限&#xff0c;所以执行的时候&#xff0c;前面加一下sudo 执行成功。

反射(理论详细到不能详细,需要不断实践)

反射机制&#xff1a; 需求&#xff1a;从【外部】配置文件中获取 类名和方法名 将其运行-》只有反射可以实现 在不修改源码的情况下控制程序-》设计模式的ocp开闭原则 &#xff08;开&#xff1a;功能开放给你使用&#xff0c;闭&#xff1a;不让修改源码&…

阿里云语雀频繁崩溃,有什么文档管理工具是比较稳定的?

10月23 日14:00左右&#xff0c;蚂蚁集团旗下的在线文档编辑与协同工具语雀发生服务器故障&#xff0c;在线文档和官网都无法打开。直到当天晚上22:24&#xff0c;语雀服务才全部恢复正常。从故障发生到完全恢复正常&#xff0c;语雀整个宕机时间将近 8 小时&#xff0c;如此长…

【SpringCloud篇】Eureka服务的基本配置和操作

文章目录 &#x1f339;简述Eureka&#x1f6f8;搭建Eureka服务⭐操作步骤⭐服务注册⭐服务发现 &#x1f339;简述Eureka Eureka是Netflix开源的一个基于REST的服务治理框架&#xff0c;主要用于实现微服务架构中的服务注册与发现。它由Eureka服务器和Eureka客户端组成&#…

机器学习与 S3 相集成 :释放数据的力量

文章作者&#xff1a;Libai 引言 在当今数据驱动的世界中&#xff0c;企业不断寻求如何高效利用企业自身所产生的数据的解决方案。机器学习已经成为一种提取有价值的见解和做出数据驱动决策的强大工具。然而&#xff0c;机器学习模型的成功在很大程度上依赖于高质量数据的可用…

算能技术资料地址、Demo github地址

技术资料地址&#xff1a; https://developer.sophgo.com/site/index/material/38/all.html Demo github地址&#xff1a;https://github.com/sophgo/sophon-demo

人工智能在警务工作中的运用

AI 能否帮助警察打击犯罪&#xff1f; 执法部门负责维护公共安全&#xff0c;他们必须处理随之而来的所有挑战。幸运的是&#xff0c;警察可以依靠技术来处理很多工作。近几年来&#xff0c;尤其是人工智能技术在全球变成了警务工作中的一个重要部分。 随着基于 AI 的警务技术…