如何用Python将JSON转为key=value并移除键的双引号?
解决Python将JSON对象转为键无引号、值带引号的字符串问题
刚接触Python不用慌,这个需求其实很容易实现,我给你一步步拆解解决方案:
场景说明
你有如下格式的JSON数据:
[{"Status": "status", "Command": "command", "IPAddress": "xx.xx.xx.xx ", "name": "name", "Service": "service"}]
想要把它转换成键不带双引号、值保留双引号的字符串:
Status="status",Command="command",IPAddress="xx.xx.xx.xx",name="name",Service="service"
分步实现代码
1. 从JSON字符串开始处理(如果你的数据是JSON字符串格式)
首先我们需要把JSON字符串解析成Python能操作的字典,然后格式化每个键值对:
import json # 你的原始JSON字符串 json_input = '[{"Status": "status", "Command": "command", "IPAddress": "xx.xx.xx.xx ", "name": "name", "Service": "service"}]' # 解析JSON字符串为Python列表(里面包含一个字典) parsed_data = json.loads(json_input) # 取出列表中的第一个字典对象 target_dict = parsed_data[0] # 遍历字典的键值对,格式化为「键="值"」的形式,再用逗号连接 output_str = ','.join([f'{key}="{value.strip()}"' for key, value in target_dict.items()]) # 打印结果 print(output_str)
2. 直接处理Python字典(如果数据已经是Python字典)
如果你的数据已经是Python字典格式,不需要解析JSON的话,直接跳过解析步骤:
# 已经准备好的Python字典 target_dict = {"Status": "status", "Command": "command", "IPAddress": "xx.xx.xx.xx ", "name": "name", "Service": "service"} # 同样的方式生成目标字符串 output_str = ','.join([f'{key}="{value.strip()}"' for key, value in target_dict.items()]) print(output_str)
代码解释
json.loads(json_input):把JSON格式的字符串转换成Python的列表和字典,方便我们操作里面的键值对。value.strip():帮你去掉值里多余的空格(比如你示例中IPAddress后面的空格),如果不需要去除空格,直接写value即可。f'{key}="{value}"':用Python的f-string格式化每个键值对,直接让键不带引号,值被双引号包裹。','.join(...):把所有格式化好的键值对用逗号连接起来,拼成最终的字符串。
扩展:处理多个JSON对象
如果你的JSON数组里有多个对象,只需要循环遍历每个字典即可:
json_input = '[{"Status": "status1", "Command": "cmd1"}, {"Status": "status2", "Command": "cmd2"}]' parsed_data = json.loads(json_input) for item in parsed_data: output_str = ','.join([f'{key}="{value.strip()}"' for key, value in item.items()]) print(output_str)
内容的提问来源于stack exchange,提问作者Archana
相关产品推荐
相关产品推荐

