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'或 ...
随机推荐
- IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤
IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤 . @ 目录 IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤 IDEA 导入项目模块 Modul ...
- 声网 VQA:将实时互动中未知的视频画质用户主观体验变可知
在实时互动场景中,视频画质是影响观众体验的关键指标,但如何实时评价视频的画质一直是个行业难题,需要将未知的视频画质用户主观体验变成可知. 未知的部分往往是最需要攻克的,声网也一直在持续探索符合实时互动 ...
- MyBatisPlus 实战字典
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具包,只做增强不做改变,为简化开发工作.提高生产效率而生. 一.Service CRUD 接口 [说明]:[1]通用 Servic ...
- RPC 与 Restful 的区别
PRC 是一种技术的代名词,HTTP 是一种协议,RPC 可以通过 HTTP 来实现,也可以通过 Socket 自己实现一套协议来实现.所以谈论为什么用 RPC 不用 HTTP 是无意义的.但我们习惯 ...
- Gin实践
// func New() *Engine // func Default() *Engine engine := New() engine.Use(Logger(), Recovery()) 由源代 ...
- dart基础---->dart语法入门
Dart is an open source, structured programming language for creating complex, browser-based web appl ...
- 通俗易懂的spring事务的传播机制讲解!
spring事务理解 前提两个都是事务的方法,并且两个方法会进行调用,调用方统一使用required 举例有两个方法: required 如果当前上下文存在事务,被调用方则加入该调用方的事务,没有的话 ...
- MySQL 8.0:无锁可扩展的 WAL 设计
这篇文章整理自MySQL官方文档,介绍了8.0在预写式日志上实现上的修改,观点总结如下: 在8.0以前,为了保证flush list的顺序,redo log buffer写入过程需要加锁,无法实现并行 ...
- Linux磁盘LVM根目录扩容
LVM 的基本概念 物理卷 Physical Volume (PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file).物理卷包括一个特殊的 hea ...
- [Java EE]缓存技术初探
1 背景 使用场景:计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存. 高并发下,为提高 频繁 查询 大量 可能常用的 数据库数据的 查询效率. 大部分情况下, ...