Python 解析“长得像 list 的 Document 字符串“:
Python 解析长得像 list 的 Document 字符串提取 page 并拼接别再无脑 eval这是字符串转 list 系列的第 2 题。第 1 题里字符串是标准的 JSON / Python 列表用json.loads/ast.literal_eval就能解决。但这一题的字符串不是普通列表而是一堆Document(...)——它是 LangChain 里Document对象的字符串表示repr目标取出每个 Document 的page页码并把每页的page_content正文拼接起来。一、为什么第 1 题的方法在这里全部失效这个字符串里既有单引号又有Document(metadata..., page_content...)这种函数调用写法它既不是 JSON也不是 Python 字面量所以第 1 题那套在这里直接报废。二、最稳的解法正则提取不碰 eval最安全既然字符串格式是固定的Document(metadata{...}, page_content...)我们用正则只解析结构不执行任何代码。这样无论来源是否可信都很安全。思路用正则找出每一段Document(...)抓出它的metadata{...}和page_content...从 metadata 里取page: 数字把每段的page_content收集起来按需拼接。✅优点纯正则、零执行、对任意来源都安全不关心page_content里有什么奇怪字符只认结构。 小提示如果原始字符串里的\n是被转义过的\\n两个字符提取出来的是字面量换行符。想要真正的换行拼接前加一句三、拼接时想按页码排序怎么办默认parse_documents是按字符串里出现的顺序返回的。如果你希望结果按page从小到大排四、如果你完全掌控来源用 eval 重建真实 Document如果这段字符串确定是你自己代码print/repr出来的绝对不会被外部篡改也可以直接把它变回真正的Document对象然后像平时一样用.metadata[page]访问⚠️为什么说一般不推荐eval会执行字符串里的任意 Python 代码。一旦这段字符串来自用户、接口、数据库等外部输入别人塞一句__import__(os).system(rm -rf /)就能造成破坏。而且page_content里的转义字符\n会被eval当成真换行解析行为取决于字符串来源不可控。五、正确的设计别把 Document 存成 repr 字符串Document的repr只是给人看的调试输出不是稳定的序列化格式。如果你要持久化或传输 Documents请用 JSON / pickle这样以后无论是取page、拼正文还是存数据库都规规矩矩不用再跟repr字符串斗智斗勇。六、三种方式对比方式安全性是否需可信来源适用场景正则提取推荐高否只能拿到字符串、来源不可信或不想引依赖eval重建 Document低代码注入是你 100% 信任这段 repr 字符串、临时调试JSON 序列化 / 反序列化高否从设计上就该这么存/传根本不该出现 repr 字符串七、总结字符串里是Document(metadata..., page_content...)这种repr不是 JSON / 字面量json.loads/ast.literal_eval都救不了首选正则提取抓metadata里的page和page_content安全又稳需要真实Document对象且来源可信时可用eval但务必清楚它的注入风险治本办法从一开始就用json.dumps序列化 Document而不是把repr当数据存。一句话拿 page、拼正文用正则想省事又安全从源头改用 JSON。

相关新闻

AI大模型API集成实战:从零构建多模型客户端与错误处理

AI大模型API集成实战:从零构建多模型客户端与错误处理

在 AI 应用开发领域,将大模型能力集成到现有产品中已成为提升用户体验和功能创新的关键路径。无论是 Claude 内置浏览器带来的上下文感知,Google 搜索与应用的无缝衔接,还是 Spotify 这类娱乐平台对 AI 的探索,其背后都离不开一套…

2026/9/21 2:25:29 阅读更多 →
图像融合技术全解析:从传统算法到深度学习实战指南

图像融合技术全解析:从传统算法到深度学习实战指南

1. 项目概述:为什么你需要一个“图像融合”大合集如果你正在计算机视觉、遥感、医疗影像或者自动驾驶领域做研究或开发,那么“图像融合”这个词对你来说一定不陌生。简单来说,图像融合就是把来自不同传感器、不同模态、或者同一场景不同焦点的…

2026/9/14 3:45:54 阅读更多 →
本地AIGC项目部署实战:从环境准备到API调用的完整指南

本地AIGC项目部署实战:从环境准备到API调用的完整指南

这次我们来看一个名为“思思想要思思又得到”的项目。从项目标题来看,这很可能是一个与AI生成内容相关的本地化工具或模型,其核心功能可能涉及文本生成、图像生成或语音合成等领域的特定应用。这类项目通常由开源社区或独立开发者发布,旨在解…

2026/9/16 17:34:57 阅读更多 →

最新新闻

Ollama+DeepSeek+Dify本地化部署:打造私有AI工作站实战指南

Ollama+DeepSeek+Dify本地化部署:打造私有AI工作站实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:07:42 阅读更多 →
研发质量控制步骤详解:从需求评审到发布复盘的全流程实践

研发质量控制步骤详解:从需求评审到发布复盘的全流程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:07:42 阅读更多 →
餐饮管理集团制度汇编实操:从框架设计到落地执行全拆解

餐饮管理集团制度汇编实操:从框架设计到落地执行全拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:07:42 阅读更多 →
R语言镜像源配置全指南:清华/阿里云加速安装

R语言镜像源配置全指南:清华/阿里云加速安装

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:07:42 阅读更多 →
GATB能力倾向测验指南:从9大因子到职业匹配的完整解读

GATB能力倾向测验指南:从9大因子到职业匹配的完整解读

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:07:42 阅读更多 →
从零开始学Linux WiFi驱动:mac80211、PCIe与固件加载实战解析

从零开始学Linux WiFi驱动:mac80211、PCIe与固件加载实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:06:42 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →