news 2026/5/31 5:53:32

[智能体-165]:python字典格式与JSON格式的转化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[智能体-165]:python字典格式与JSON格式的转化

Python 内置json标准库实现转换,字典是内存数据结构,JSON 是字符串格式,二者本质不同。

一、核心方法

功能函数说明
字典 → JSON 字符串json.dumps()序列化
JSON 字符串 → 字典json.loads()反序列化
字典写入 JSON 文件json.dump()写入文件
读取 JSON 文件 → 字典json.load()读取文件

二、基础代码示例

1. 字典 转 JSON 字符串(dumps)

python

运行

import json # Python 字典 data = { "name": "张三", "age": 25, "hobby": ["游泳", "阅读"], "is_student": False } # 转为 JSON 字符串 json_str = json.dumps(data) print("JSON 字符串:", json_str) print("类型:", type(json_str)) # <class 'str'>
常用参数美化输出
  • ensure_ascii=False保留中文(必加,否则中文变 unicode 编码)
  • indent=4:缩进格式化,方便阅读

python

运行

json_str = json.dumps(data, ensure_ascii=False, indent=4) print(json_str)

2. JSON 字符串 转 字典(loads)

python

运行

# 已有 JSON 字符串 json_str = '{"name": "李四", "age": 22, "hobby": ["跑步"]}' # 解析为字典 dict_data = json.loads(json_str) print("字典:", dict_data) print("类型:", type(dict_data)) # <class 'dict'> # 按 key 取值 print(dict_data["name"])

三、读写 JSON 文件(dump /load)

1. 字典写入.json文件

python

运行

data = {"title": "测试", "content": "JSON 文件操作"} # 写入文件 with open("test.json", "w", encoding="utf-8") as f: json.dump(data, f, ensure_ascii=False, indent=4)

2. 读取.json文件转为字典

python

运行

# 读取文件 with open("test.json", "r", encoding="utf-8") as f: file_data = json.load(f) print(file_data, type(file_data))

四、关键注意事项(避坑)

1. 数据类型差异

JSON 支持类型有限,转换会自动适配:

  • PythonTrue/False→ JSONtrue/false
  • PythonNone→ JSONnull
  • 元组 tuple会转为 JSON 数组list

python

运行

import json d = {"data": (1, 2, 3)} # 元组 res = json.dumps(d) print(res) # 输出数组:{"data": [1, 2, 3]}

2. 键名必须是字符串

JSON 要求键只能是字符串,Python 字典数字键会自动转字符串:

python

运行

d = {100: "数字键"} s = json.dumps(d) print(s) # {"100": "数字键"}

3. 不支持的类型

Python 特有类型(datetime、自定义对象、集合set无法直接转 JSON,会报错,需要手动转换。

4. 引号区别

  • JSON 标准:只允许双引号"
  • Python 字典:单 / 双引号都可以

错误写法:JSON 字符串用单引号,loads()解析失败


五、结合 LangChain 实战场景

常用于大模型输出结构化解析

python

运行

import json from langchain_core.output_parsers import JsonOutputParser from langchain_core.prompts import ChatPromptTemplate from langchain_openai import ChatOpenAI llm = ChatOpenAI(temperature=0) prompt = ChatPromptTemplate.from_template(""" 提取信息并返回纯JSON:姓名、年龄 内容:{info} """) chain = prompt | llm # 模型返回 JSON 格式字符串 resp = chain.invoke({"info": "王五,28岁"}) json_str = resp.content # 字符串转字典 result = json.loads(json_str) print(result["姓名"], result["年龄"])

六、速记总结

  1. 内存互转:dumps(字典→串) /loads(串→字典)
  2. 文件互转:dump(写文件) /load(读文件)
  3. 中文必加:ensure_ascii=False
  4. 格式化查看:搭配indent参数
  5. JSON 仅支持:对象、数组、字符串、数字、布尔、null
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/31 5:50:59

告别PuTTY和Xshell!这个免费全能终端MobaXterm,我用了就回不去了

全能终端MobaXterm&#xff1a;运维工程师的效率革命 第一次在同事的屏幕上看到MobaXterm时&#xff0c;我正手忙脚乱地在PuTTY、WinSCP和RDP客户端之间切换。他轻松地在一个窗口里完成了SSH登录、文件传输和远程桌面操作&#xff0c;而我面前的五个窗口已经挤满了任务栏。那一…

作者头像 李华
网站建设 2026/5/31 5:47:51

认知偏差如何影响AI决策:企业智能化转型的思维避坑指南

1. 项目概述&#xff1a;当“思维捷径”遇上“智能决策”最近和几位企业高管聊起人工智能的落地&#xff0c;发现一个有趣的现象&#xff1a;大家普遍认可AI的技术潜力&#xff0c;但在实际推动项目时&#xff0c;却常常陷入各种犹豫、误判和反复。技术团队抱怨业务方“需求摇摆…

作者头像 李华