[json][ini]文件的相互转化
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 替换为 true
json_data.replace('True', 'true')
return json_data
import json
def parse_inf(inf_string):
configs = {}
current_section = None
# Split the string into lines
lines = inf_string.strip().split("\r\n")
# Parse each line
for 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] = value
return configs
def getInf(data):
# Process each item in the "data" list
for item in data["data"]:
inf_string = item["inf"]
parsed_configs = parse_inf(inf_string)
item["sections"] = parsed_configs
# Remove the original "inf" field
for item in data["data"]:
del item["inf"]
return json.dumps(data, ensure_ascii=False, indent=4)
ini转为json
import json
def parse_inf(inf_string):
configs = {}
current_section = None
# Split the string into lines
lines = inf_string.strip().split("\r\n")
# Parse each line
for 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] = value
return configs
def getInf(data):
# Process each item in the "data" list
for item in data["data"]:
inf_string = item["inf"]
parsed_configs = parse_inf(inf_string)
item["sections"] = parsed_configs
# Remove the original "inf" field
for item in data["data"]:
del item["inf"]
return json.dumps(data, ensure_ascii=False, indent=4)