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'或 ...
随机推荐
- Sleuth 使用
sleuth是spring cloud中日志链(调用链解决方案),自动添加traceId,spanId. sleuth包也可单独引入,和其它藕合度小.sleuth + zipkin 实现APM管理. ...
- 如何利用Apifox通过签名计算及数据加解密进行用户认证接口测试?
用户注册场景:输入签名数据signature,appId,13位时间戳timestamp,6位随机数nonce,merchantId(非必填,本次不填)的请求参数发送给服务器,服务器返回响应数值后,校 ...
- ElasticSearch 实现分词全文检索 - 测试数据准备
目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...
- 2-2 理解const
1 const 在引用中注意不能为常量绑定一个非常量的引用 在指针中区分low-level const和top-level const const通常用于定义常量,一经定义不许修改,且使用const必 ...
- wx.BoxSizer布局管理器用法,及其Add()方法参数说明
wx.BoxSizer 布局管理器是一种常见的布局管理器,它可以在水平或垂直方向上布置子窗口部件.同时,它还可以在水平或垂直方向上包含其他 wx.BoxSizer 来创建复杂的布局. 下面是 wx.B ...
- CSharp linq 的本质
linq 的本质是扩展方法和委托的结合 链式 linq 和 方法级linq List<int> list = new List<int>() { 3,9,32,7 }; // ...
- Java面试——搜索
更多内容,前往 IT-BLOG 一.Elasticsearch了解多少 ElasticSearch 是一个基于 Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTfu ...
- MySQL 一致性视图(MVCC)
更多内容,前往IT-BLOG MySQL中支持的四种隔离级别 提到事务,你肯定会想到 ACID(Atomicity.Consistency.Isolation.Durability,即原子性.一致性. ...
- vue中优雅的使用定时器
1.常见方法.在data中声明一个变量,定时器绑定到变量中,然后在beforeDestory中销毁这个定时器 举个例子 首先我在data函数里面进行定义定时器名称 data() { return { ...
- 容器云平台监控告警体系(三)—— 使用Prometheus Operator部署并管理Prometheus Server
1.概述 Prometheus Operator是一种基于Kubernetes的应用程序,用于管理Prometheus实例和相关的监控组件.它是由CoreOS开发的开源工具,旨在简化Prometheu ...