[json][ini]文件的相互转化

embedded/2024/10/17 14:02:45/

json转为ini

import json# 将每个section的键值对转换回原始格式的函数
def convert_to_inf_format(section_data):inf_str = ""for section, values in section_data.items():inf_str += f"[{section}]\r\n"for key, value in values.items():if value == "true":print(key,value)inf_str += f"{key}=true\r\n"elif value == "false":inf_str += f"{key}=false\r\n"print(value)else:inf_str += f"{key}={value}\r\n"return inf_str.strip()def postInf(data):# 遍历数据,恢复inf字段for item in data["data"]:# 删除inf字段if "sections" in item:item["inf"] = convert_to_inf_format(item["sections"])else:item["inf"] = item.pop("inf", "")  # 如果没有sections,则保持原样或清空try:for item in data["data"]:del item["sections"]except KeyError:print("已删除")# 打印修改后的JSON数据json_data = json.dumps(data["data"][0], ensure_ascii=False, indent=4)# 将 True 替换为 truejson_data.replace('True', 'true')return json_data
import jsondef parse_inf(inf_string):configs = {}current_section = None# Split the string into lineslines = inf_string.strip().split("\r\n")# Parse each linefor line in lines:if "[" in line:current_section = line.strip("[]")configs[current_section] = {}elif "=" in line:key, value = line.strip().split("=", 1)if current_section:configs[current_section][key] = valuereturn configsdef getInf(data):# Process each item in the "data" listfor item in data["data"]:inf_string = item["inf"]parsed_configs = parse_inf(inf_string)item["sections"] = parsed_configs# Remove the original "inf" fieldfor item in data["data"]:del item["inf"]return json.dumps(data, ensure_ascii=False, indent=4)

ini转为json

import jsondef parse_inf(inf_string):configs = {}current_section = None# Split the string into lineslines = inf_string.strip().split("\r\n")# Parse each linefor line in lines:if "[" in line:current_section = line.strip("[]")configs[current_section] = {}elif "=" in line:key, value = line.strip().split("=", 1)if current_section:configs[current_section][key] = valuereturn configsdef getInf(data):# Process each item in the "data" listfor item in data["data"]:inf_string = item["inf"]parsed_configs = parse_inf(inf_string)item["sections"] = parsed_configs# Remove the original "inf" fieldfor item in data["data"]:del item["inf"]return json.dumps(data, ensure_ascii=False, indent=4)

http://www.ppmy.cn/embedded/128180.html

相关文章

AnaTraf | 深入探秘:如何利用网络报文分析仪进行高效抓包分析

目录 什么是网络报文分析仪? 抓包分析的核心作用 1. 故障排除 2. 性能优化 3. 安全监测 抓包分析的常见场景与技巧 1. 分析网络延迟问题 2. 排查TCP三次握手问题 3. 分析丢包问题 总结 AnaTraf 网络性能监控系统NPM | 全流量回溯分析 | 网络故障排除工具A…

Solon2 开发之容器,八、动态代理的本质

在 Java 里动态代理,主要分:接口动态代理 和 类动态代理。因为它的代理类都是动态创建的,所以名字里会带上 “动态”。 官网的有些地方叫 “代理”,也有些地方叫 “动态代理”。都是一个意思。 1、接口动态代理 这是 jdk 直接支…

GCC(GNU Compiler Collection)部分参数解释

GCC(GNU Compiler Collection)部分参数解释 汇编器(assembler)、预处理器(preprocessor)和链接器(linker)。每个选项都允许你以逗号分隔的形式指定一个或多个参数,这些参…

什么是网络安全?网络安全包括哪几个方面?学完能做一名黑客吗?

提及网络安全,很多人都是既熟悉又陌生,所谓的熟悉就是知道网络安全可以保障网络服务不中断。那么到底什么是网络安全?网络安全包括哪几个方面?通过下文为大家介绍一下。 一、什么是网络安全? 网络安全是指保护网络系统、硬件、软件以及其中的数据免…

第八课:Python学习之循环

循环 目标 程序的三大流程while 循环基本使用break 和 continuewhile 循环嵌套 01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下,顺序执行代码分支 —— 根据条件判断,决定执行代码的 分支循环 —— …

手撕单例模式

在Go语言中实现单例模式,通常需要确保一个类只有一个实例,并且提供一个全局访问点。Go语言本身没有类的概念,但可以通过结构体和函数来模拟这种行为。下面是一个简单的手撕单例模式的实现示例: 懒汉式(延迟初始化&…

Postman使用-基础篇

前言 本教程将结合业界广为推崇和使用的RestAPI设计典范Github API,详细介绍Postman接口测试工具的使用方法和实战技巧。 在开始这个教程之前,先聊一下为什么接口测试在现软件行业如此重要? 为什么我们要学习Postman? 现代软件…

【python】OpenCV—Fourier Transform

文章目录 1、傅里叶变换1.1、振幅信息——abs1.2、相位信息——angle 2、傅里叶逆变换2.1、仅包含振幅或者仅包含相位 vs 振幅相位均包含2.2、两张图片振幅和相位互换 3、滤波3.1、高通滤波3.2、低通滤波3.3、带通滤波 4、涉及到的库函数4.1、numpy.fft.fft24.2、numpy.fft.fft…