json函数
Python与JSON(load、loads、dump、dumps)
1.Python中加载JSON
使用loads(string):作用将string类型转为dict字典或dict链表
# 加载配置,configuration_path:配置文件路径
def load_conf(configuration_path):
with open(configuration_path, 'r') as f:
string = f.read()
return json.loads(string)
使用load(file_stream):作用从文件流直接读取并转换为dict字典或dict字典链表
# 加载配置,configuration_path:配置文件路径
def load_conf(configuration_path):
with open(configuration_path, 'r') as f:
data = json.load(f)
return data
2.Python写入JSON
使用dumps():将可以转换为json对象的对象转换为String,然后可通过字符流或字节流写入文件

def save_conf(confiuration_path, pre_trans_obj):
#先用dunps转为string,然后字符流写入
#ensure_ascii=False, 减少乱码
json_string = json.dumps(pre_trans_obj, ensure_ascii=False)
with open(confiuration_path,'w') as f:
f.write(json_string)

使用dump():将可转为json对象的对象直接写入文件(将两个步骤结合成一个步骤)
def save_conf(confiuration_path, pre_trans_obj):
with open(confiuration_path,'w') as f:
json.dump(pre_trans_obj, f, ensure_ascii=False)
3.写入时中文乱码
写入时可能遇到两种中文乱码问题:
(1)显示ASCII码,情况如下:

原因是,dumps或dump编码时使用了ASCII吗编码中文,只需要在dumps或dump参数中添加参数:ensure_ascii=False,将ascii编码关闭即可。
(2)显示未知字符,情况如下:

原因是,存入的json文件默认编码为ANSI,而VsCode(IDE)以UTF-8格式打开,所以会出现这样的错误,其他的写入也可能出现类似的问题,检查是否因为这样的问题,用记事本打开文件,显示如下:(注意右下角)

解决方法:使用open函数时指定编码格式utf-8,即添加参数:encoding=‘utf-8’,完整代码如下:

def save_conf(confiuration_path, pre_trans_obj):
#先用dunps转为string,然后字符流写入
#ensure_ascii=False, 减少乱码
json_string = json.dumps(pre_trans_obj, ensure_ascii=False)
with open(confiuration_path,'w',encoding='utf-8') as f:
f.write(json_string)

注意:任何时候都应注意打开文件的格式,比如ide会默认设置为GBK等等,所以读取、写入文件都应使用统一格式。同理:在Web开发时Request和Response也是如此。
json函数的更多相关文章
- 【SqlServer】JSON函数
1 概述 本篇文件将结合MSND简要分析Sqlserver中JSON函数,主要包括ISJSON,JSON_VALUE,JSON_MODIFY,JSON_QUERY. 2 具体内容 2.1 J ...
- [转]MySQL常用Json函数和MySQL常用字符串函数
MySQL常用Json函数:https://www.cnblogs.com/waterystone/p/5626098.html MySQL常用字符串函数:https://www.cnblogs.co ...
- SQL Server之JSON 函数
SQL Server 2005开始支持XML数据类型,提供原生的XML数据类型.XML索引及各种管理或输出XML格式的函数.随着JSON的流行,SQL Server2016开始支持JSON数据类型,不 ...
- HP数组转JSON函数json_encode和JSON转数组json_decode函数的使用方法
这两个函数比较简单,我这里直接写例子,但是有一点一定要注意,json数据只支持utf-8格式,GBK格式的数据转换为json会报错! json_encode()用法: <?php$data =a ...
- Mysql Json函数总览 (一)
JSON函数相关文章均来自官网,此处仅做记录,以便以后查询方便. https://dev.mysql.com/doc/refman/5.7/en/json-functions.html JSON函数参 ...
- MySQL常用Json函数
官方文档:JSON Functions Name Description JSON_APPEND() Append data to JSON document JSON_ARRAY() Create ...
- Python基础-处理json函数
#json是一种通用的数据类型,所有的语言都认识#json是一个字符串,json串里面都得是双引号,主要是这四个函数 #dump#dumps#load#loads import jsonnames = ...
- PHP Json函数不能处理中文的解决办法
PHP5.2 新增的 json 功能是非常受欢迎的,但是经过测试发现,json_encode 对中文的处理是有问题的: 不能处理GB编码,所有的GB编码都会替换成空字符: utf8编码的中文被编码成u ...
- 浅谈JSON与与JS相关的JSON函数
本文内容主要引用在微信公众号上看到的一片文章,因为自己对Json了解不是很深入,所以就整理出这篇博文与大家分享! 一. JSON是一种格式,基于文本,优于轻量,用于交换数据 1.一种数据格式 数据的传 ...
- MySQL的常用JSON函数
1. JSON_SEARCH(col ->> '$[*].key', type, val) col: JSON格式的字段名 key:要搜索的col字段的key type:可以为'one'或 ...
随机推荐
- 打开CMD方式
打开CMD的方式 win+r 输入cmd 常用的Dos命令 1.#盘符切换2.#查看当前文件目录下的所有文件 dir3.#切换目录 cd change directory4.#cd .. 返回上级5. ...
- LeetCode 周赛 336,多少人直接 CV?
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 今天早上是 LeetCode 第 336 场周赛,你参加了吗?这场周赛整体质量比较高,但 ...
- gRPC之.Net6中的客户端和服务端共用proto协议文件
1.说明 在上一篇文章gRPC之.Net6中的初步使用介绍中,我们简单的介绍了gRPC在服务端.客户端以及Web项目中的使用. 有一个问题,不知道大家发现没有,就是不管在服务端项目还是客户端项目中,我 ...
- CSPS2019 括号树 题解
链的部分分 我们设f[i]表示以i结尾的括号序列有多少个,那么i的实际答案就是f的前缀和 显然,所有左括号和不能匹配的右括号的f均为0 对于每一个能匹配的右括号i,我们找到与之匹配的左括号p,以i结尾 ...
- 屎上最全vue-pdf+Springboot与aspose-words整合,开箱即用
前言 ⏲️本文阅读时长:约10分钟 主要目标: 1.实现Springboot与aspose-words整合,填充word模板并转化PDF; 2.前端vue整合vue-pdf实现PDF预览及下载 wor ...
- Android和adb命令
一.名词解释 1.SDK:是软件开发工具包 2.activity(活动):驱使软件运行的一段程序,软件系统和用户进行交互的界面叫一个活动 二.adb命令 1.查看连接的设备:adb devices 2 ...
- http-server 服务配置跨域
http-server --cors -p 9999 http-server --cors -p 9999 -c-1 (禁用缓存)
- Qt源码阅读(三) 对象树管理
对象树管理 个人经验总结,如有错误或遗漏,欢迎各位大佬指正 @ 目录 对象树管理 设置父对象的作用 设置父对象(setParent) 完整源码 片段分析 对象的删除 夹带私货时间 设置父对象的作用 众 ...
- 逍遥自在学C语言 | 第一个C语言程序 九层之台起于垒土
一.人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 -- 自在. 第二位上场的是和我们一起学习的小白程序猿 -- 逍遥. 二.C语言简介 C语言是一种高级语言,运行效率仅次于汇编,支持跨平 ...
- ARM 详解
一.ARM 的发展史 ARM 的发展历史可以追溯到 1978 年,当年克里斯·库里(Chris Currry)所任职的公司遭遇财务危机,发展每况愈下,库里在和创始人深入沟通后,决定离职.当时的库里对微 ...