当前位置: 首页 > news >正文

【python】json转成成yaml中文编码异常显示成:\u5317\u4EAC\u8DEF123\u53F7

姊妹篇:【python】json转成成yaml
json数据

{"name": "张三","age": 30,"isMarried": false,"children": [{"name": "小王","age": 5},{"name": "小李","age": 3}],"address": {"street": "北京路123号","city": "北京市","postalCode": "100000"},"email": "zhangsan@example.com","phoneNumbers": [{"type": "home","number": "2341234"},{"type": "office","number": "5678901"}],"login": {"username": "zhangsan","password": "password123"},"cart": [{"product": {"name": "笔记本电脑","price": 1199.99,"quantity": 2}},{"product": {"name": "智能手机","price": 599.99,"quantity": 1}}]
}

code v1

# -- coding:utf-8 --
import json, yaml, osBASE_DIR = os.path.dirname(os.path.abspath(__file__))def jsonToYaml(jsonPath, yamlPath):with open(jsonPath, "r", encoding='utf-8') as f:f_json = json.load(f)with open(yamlPath, "w", encoding='utf-8') as f:f_yaml = yaml.dump(f_json)yaml.dump(yaml.safe_load(f_yaml), f, sort_keys=False)if __name__ == '__main__':jsonPath = "data.json"yamlPath = "data.yaml"jsonPath = os.path.join(BASE_DIR, jsonPath)yamlPath = os.path.join(BASE_DIR, yamlPath)jsonToYaml(jsonPath, yamlPath)

转化后:
在这里插入图片描述
转化后发现中文显示不是那么友善,全变成了:\u5317\u4EAC\u8DEF123\u53F7,这种形式;
主要原因:
在PyYAML中,默认的编码是UTF-8,但是如果你的字符串包含非UTF-8字符,比如中文,你可能需要指定一个不同的编码。在你的代码中,你可能需要指定在写入YAML文件时使用的编码是UTF-8,而不是默认的编码。

另外,当你使用 yaml.dump() 时,如果你想要保持中文等非ASCII字符的可读性,你应该使用 default_flow_style=False 参数,这样YAML文件将以块样式编写,而不是流动样式。

修改后的代码:

# -- coding:utf-8 --
import json, yaml, osBASE_DIR = os.path.dirname(os.path.abspath(__file__))def jsonToYaml(jsonPath, yamlPath):with open(jsonPath, "r", encoding='utf-8') as f:f_json = json.load(f)with open(yamlPath, "w", encoding='utf-8') as f:f_yaml = yaml.dump(f_json)# yaml.dump(yaml.safe_load(f_yaml), f, sort_keys=False)# 使用safe_dump以避免潜在的安全风险,除非你完全信任源数据yaml.safe_dump(f_json, f, default_flow_style=False, allow_unicode=True)if __name__ == '__main__':jsonPath = "data.json"yamlPath = "data.yaml"jsonPath = os.path.join(BASE_DIR, jsonPath)yamlPath = os.path.join(BASE_DIR, yamlPath)jsonToYaml(jsonPath, yamlPath)

转换后的结果:

address:city: 北京市postalCode: '100000'street: 北京路123号
age: 30
cart:
- product:name: 笔记本电脑price: 1199.99quantity: 2
- product:name: 智能手机price: 599.99quantity: 1
children:
- age: 5name: 小王
- age: 3name: 小李
email: zhangsan@example.com
isMarried: false
login:password: password123username: zhangsan
name: 张三
phoneNumbers:
- number: '2341234'type: home
- number: '5678901'type: office

在本文中,我们探讨了技术性文章博客的重要性,它不仅能提升个人品牌,还能促进知识共享和技能成长。通过选择合适的平台、保持专业性和真诚性,并利用SEO和社交媒体策略来提高可见性,任何人都可以成功地撰写和推广技术性文章博客。记住,持续学习和实践是提升技术能力的的关键,而写作是这一旅程中的宝贵工具。让我们开始撰写影响未来的技术故事吧!

相关文章:

【python】json转成成yaml中文编码异常显示成:\u5317\u4EAC\u8DEF123\u53F7

姊妹篇:【python】json转成成yaml json数据 {"name": "张三","age": 30,"isMarried": false,"children": [{"name": "小王","age": 5},{"name": "小李",&qu…...

Python 实现Excel自动化办公(中)

在上一篇文章的基础上进行一些特殊的处理,这里的特殊处理主要是涉及到了日期格式数据的处理(上一篇文章大家估计也看到了日期数据的处理是不对的)以及常用的聚合数据统计处理,可以有效的实现你的常用统计要求。代码如下&#xff1…...

MCTS代码

这段代码的背景是玩一个游戏。游戏的参数有NUM_TURNS,在第i回合,你可以从一个整数[-2,2,3,-3]*(NUM_TURNS1-i)中进行选择。例如,在一个4回合的游戏中,在第1回合,你可以从[-8,8,12&am…...

Java 中notify 和 notifyAll 方法介绍

1. notify 方法 notify() 方法是 Java 中 Object 类的一个方法,它用来唤醒在该对象的监视器(monitor)上等待的单个线程。如果有多个线程都在该对象上等待,则会随机唤醒其中一个线程。被唤醒的线程将会尝试重新获取对象锁&#xff…...

Leetcode :杨辉三角

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 思路:双循环,一个是层数,一个是当前数组的生成;两侧为1,需要边界判断条件…...

MWC 2024丨美格智能CEO杜国彬出席中国联通创新成果发布会并发表主题演讲

2月26日,中国联通在MWC2024 巴塞罗那期间举办了以“算网为基,智领未来”为主题的创新成果发布会,集中展示最新的创新成果与最佳实践。 中国通信标准化协会理事长闻库、GSMA首席财务官Louise Easterbrook、中国联通副总经理梁宝俊、华为ICT销…...

个人建站前端篇(七)vite + vue3企业级项目模板

一、vite命令行创建项目 npm create vitelatest根据提示选择模板,选择vite vue3 ts即可。 二、项目连接远程仓库 git init git remote add origin https://gitee.com/niech_project/vite-vue3-template.git git pull origin master git checkout -b dev三、项目…...

centos7 安装 docker-compose

1、直接参考官方: Install Compose standalone | Docker Docs 1、安装命令 curl -SL https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose 2、修改 docker-compose 执行权限 不修改执行权…...

剑指offer面试题28:对称的二叉树

#试题28:对称的二叉树 题目: 请设计一个函数判断一棵二叉树是否 轴对称 。 示例 1: 输入:root [6,7,7,8,9,9,8] 输出:true 解释:从图中可看出树是轴对称的。示例 2: 输入:root …...

JS:原型与原型链(附带图解与代码)

一、原型 写在前面: 任何对象都有原型。 函数也是对象,所以函数也有原型。 1.什么是原型 在 JavaScript 中,对象有一个特殊的隐藏属性 [[Prototype]],它要么为 null,要么就是对另一个对象的引用,该对象…...

电子电器架构新趋势 —— 最佳着力点:域控制器

电子电器架构新趋势 —— 最佳着力点:域控制器 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师…...

C++记录

常用快捷键: CTRL -向后定位 CTRL SHIFT -向前定位 1.注释:CTRLKC 2.取消注释:CTRLKU 11.调试(启动):F5 20.查找:CTRLF 21.替换:CTRLH 31.跳转到指定的某一行 1)方法1:组合键“CtrlG…...

ConcurrentModificationException并发修改异常

ConcurrentModificationException并发修改异常 原因分析 可以通过遍历索引也可以通过迭代器进行遍历。在我们使用迭代器进行遍历集合的时候,会获取到当前集合的迭代对象。在里面有封装了迭代器的remove方法与集合自带的remove方法,如果我们调用迭代器对…...

小程序事件处理

事件处理 一个应用仅仅只有界面展示是不够的,还需要和用户做交互,例如:响应用户的点击、获取用户输入的值等等,在小程序里边,我们就通过编写 JS 脚本文件来处理用户的操作 1. 事件绑定和事件对象 小程序中绑定事件与…...

蓝桥杯-单片机组基础6——定时计数器与外部中断混合使用(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章:戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写,代码可直接在比赛开发板上使用。 型号:国信天长4T开发板(绿板),芯片:IAP15F2K6…...

交友社交软件开发-php交友聊天系统-

为了开发一个高效的交友系统,需要一个完善的信息管理和筛选机制。这个系统应该能够根据用户的个人信息、兴趣爱好、价值观等标准进行筛选,并向用户提供符合他们要求心仪的人的信息。为了实现这个目标,系统可以利用人工智能技术,分…...

vue2 开发记录

el-select 如何修改选择项的样式/el-select-dropdown__item 文字上下显示 测试代码 <div stylemargin-left: 100px><!-- 测试代码--><el-select filterablesizemini><div classxxx-el-select><el-optionv-foritem in [{key:1,des:2,…...

QML中表格中数据获取

1.在生成的动态表格中获取某格数据的内容 import QtQuick 2.15 import QtQuick.Window 2.15import QtQuick.Controls 2.0 import Qt.labs.qmlmodels 1.0 import QtQuick.Layouts 1.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")TableMod…...

【mysql 数据库事务】开启事务操作数据库,写入失败后,不回滚,会有问题么? 这里隐藏着大坑,复试,面试时可以镇住面试老师!!!!

建表字段: CREATE TABLE user (id INT(11) NOT NULL AUTO_INCREMENT,nickname VARCHAR(32) NOT NULL COLLATE utf8mb4_general_ci,email VARCHAR(32) NOT NULL COLLATE utf8mb4_general_ci,status SMALLINT(6) UNSIGNED NULL DEFAULT NULL,password VARCHAR(256) NULL DEFAULT…...

Go语言的100个错误使用场景(55-60)|并发基础

前言 大家好&#xff0c;这里是白泽。**《Go语言的100个错误以及如何避免》**是最近朋友推荐我阅读的书籍&#xff0c;我初步浏览之后&#xff0c;大为惊喜。就像这书中第一章的标题说到的&#xff1a;“Go: Simple to learn but hard to master”&#xff0c;整本书通过分析1…...

CH7034B显示模块原理图设计,已量产

目录 1、系统整体架构设计 2、核心子系统电路设计 2.1、CH7034B 主桥接芯片与 RGB 输入组织 2.2、模拟显示输出与 DDC 边界 2.3、1.8V 核心电源、27MHz 时钟与辅助控制器 2.4、背光与边角控制电路 3、硬件性能优化与工程化考量 3.1、电源与噪声控制 3.2、信号完整性与…...

【2026奇点大会前瞻】:大模型视觉理解的5大技术断层与3个月落地攻坚指南

第一章&#xff1a;2026奇点大会视觉理解技术演进全景图 2026奇点智能技术大会(https://ml-summit.org) 2026奇点大会首次系统性地整合了多模态感知、神经符号推理与具身视觉学习三大范式&#xff0c;标志着视觉理解正从“识别”迈向“可解释因果建模”。本届大会展示的视觉架…...

Mware虚拟机去虚拟化DLL版

、 链接&#xff1a;https://pan.quark.cn/s/d2f35a95a54a...

BERT在小说大模型中的核心定位:理解者、解码者、守护者

在AI重塑文学创作与阅读体验的时代浪潮中&#xff0c;Transformer架构的大语言模型无疑是聚光灯下的绝对主角。GPT系列以惊人的生成能力续写故事&#xff0c;DeepSeek-R1在阅文集团的集成让网文创作迎来了智能化时刻。然而&#xff0c;一个微妙却关键的问题正在浮出水面&#x…...

网页开发四剑客:HTML/CSS/JS/PHP全解析

PHP、JavaScript、HTML 和 CSS 是构建现代网页的核心技术&#xff0c;它们各自承担不同角色&#xff1a;1. HTML&#xff08;超文本标记语言&#xff09;定位&#xff1a;网页的结构骨架功能&#xff1a;定义页面内容&#xff08;标题、段落、图片等&#xff09;和基础结构特点…...

从编译到实战:用MRtrix3处理你的第一份DWI数据(附macOS Ventura适配指南)

从编译到实战&#xff1a;用MRtrix3处理你的第一份DWI数据&#xff08;附macOS Ventura适配指南&#xff09; 第一次打开MRtrix3的命令行界面时&#xff0c;那种面对未知领域的兴奋与忐忑&#xff0c;相信每位神经影像研究者都深有体会。这个开源的弥散磁共振成像处理工具&…...

从Prompt工程师到MLOps架构师,大模型工程化人才跃迁路径全解析,一线大厂HR亲授筛选逻辑与成长陷阱

第一章&#xff1a;SITS2026圆桌&#xff1a;大模型工程化人才需求 2026奇点智能技术大会(https://ml-summit.org) 从实验室到产线的关键断层 当前大模型落地面临显著的“能力-工程”鸿沟&#xff1a;研究团队可高效调优百亿参数模型&#xff0c;但企业级服务要求低延迟推理、…...

别再踩坑了!保姆级教程:用PHPStudy在Win10上搞定Webug4.0靶场(附Navicat连接避坑指南)

别再踩坑了&#xff01;保姆级教程&#xff1a;用PHPStudy在Win10上搞定Webug4.0靶场&#xff08;附Navicat连接避坑指南&#xff09; Webug4.0作为国内知名的Web漏洞练习靶场&#xff0c;是网络安全初学者提升实战能力的绝佳工具。但在Windows 10环境下使用PHPStudy搭建时&…...

幻影峡谷工控机实战:FLIR BFS-PGE-16S2C-CS相机ROS驱动配置手记

幻影峡谷工控机实战&#xff1a;FLIR BFS-PGE-16S2C-CS相机ROS驱动配置全解析 在工业视觉系统中&#xff0c;FLIR灰点相机凭借其卓越的热成像和高速采集能力&#xff0c;成为智能制造、自动化检测等场景的核心传感器。而幻影峡谷工控机以其紧凑的机身和强大的计算性能&#xff…...

第9章 函数-9.5 函数参数的类型

1.位置参数位置参数指的是在函数传递时必须按照正确的顺序将实参传到函数之中&#xff0c;换句话说&#xff0c;调用函数时传入实参的数量和位置都必须和创建函数时的形参保持一致。示例代码如下&#xff1a;# 资源包\Code\chapter9\9.4\0907.pydef myFunc(name, teach):return…...