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/10/17 10:51:35 阅读更多 →
图像融合技术全解析:从传统算法到深度学习实战指南

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

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

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

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

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

2026/10/18 11:15:06 阅读更多 →

最新新闻

两个-I都能编译成功,结果却不同:沿TinyCC的TCCState追一次头文件查找

两个-I都能编译成功,结果却不同:沿TinyCC的TCCState追一次头文件查找

我想研究TinyCC,最主要的原因是它小,感觉自己能读得下去。打开源码以后,还是会遇到一个很大的结构体:TCCState。里面有头文件路径、库路径、用户选项,也有编译过程中留下的信息。 如果从第一个字段开始逐个看&#xf…

2026/10/19 12:06:19 阅读更多 →
连续出现三次,不是总共出现三次:修正一道SQL题里的错误分组

连续出现三次,不是总共出现三次:修正一道SQL题里的错误分组

旧草稿里有一道“连续数字”的SQL题:从Logs中找出连续出现至少三次的值。 先看这两串记录,按id从小到大排: 1、1、1 找到1 1、2、1、2、1 找不到1两边的1都出现了三次,但第二串每次都被2隔开。所以只写GROUP BY num…

2026/10/19 12:06:19 阅读更多 →
Svelte 作为前端框架,本身并不是 Python 技术栈的一部分,但在 Python 项目中,它非常适合作为高性能前端层使用

Svelte 作为前端框架,本身并不是 Python 技术栈的一部分,但在 Python 项目中,它非常适合作为高性能前端层使用

Svelte 作为前端框架,本身并不是 Python 技术栈的一部分,但在 Python 项目中,它非常适合作为高性能前端层使用。2026 年的主流方案通常是:前端采用 Svelte 5 SvelteKit,后端采用 FastAPI / Django / Flask&#xff0c…

2026/10/19 12:06:19 阅读更多 →
如何安全地给 Windows 11 减肥:清掉预装软件,让电脑快起来

如何安全地给 Windows 11 减肥:清掉预装软件,让电脑快起来

在我的 Windows 11 专业版 25H2 测试机上,一次全新安装后,系统里冒出大约 18 到 20 个我根本没要过的预装应用;用不了几天,任务管理器里的开机进程数就飙到三位数。这哪叫干净的操作系统,简直是个展厅。 不过好消息是,微软允许我们直接在「设置」里把这些用不上的预装应…

2026/10/19 12:06:19 阅读更多 →
Origin:AI原生应用的声明式发布范式

Origin:AI原生应用的声明式发布范式

1. 项目概述:这不是一次普通的产品更新,而是一次开发工作流的范式迁移 “Cursor 发布 Origin 应用发布指南”——这短短十一个字背后,藏着过去三年我跟踪智能编程工具演进过程中最值得驻足的一刻。Origin 不是 Cursor 的又一个插件&#xff0…

2026/10/19 12:06:19 阅读更多 →
MySQL三层b+树能存多少数据步步剖析

MySQL三层b+树能存多少数据步步剖析

注意:绝大多数业务单表不会超过千万、亿级别,刚好落在高度 3 这个区间,是典型值,不是固定值。第 1 层:根节点(只有 1 页)第 2 层:中间非叶子层第 3 层:叶子节点&#xff…

2026/10/19 12:05:18 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

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

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/18 12:16:16 阅读更多 →