粉丝1375获赞4293


四女句的应用场景我就不废话了,直接开始。我们用到的库是 newtonsoftson。 首先是序列化,我们这里创建一个类,里面包含学生的姓名、年龄和成绩。在 c sub 中,四人序列化是将点奈的对象转换为四人格式制不串的过程。 然后我们实际化 student, 分 别给姓名、年龄、分数赋值。这里类型错了,改一下 虚列化,调用生成 counter, 点 see realize object。 然后我们显示一下,看看 这个就是我们虚列化后的生成制符串了。接下来我们看一下反虚列化。反虚列化就是将生成制符串转为点奈对象的过程。 同样实体化塑的对象调用生成 counter, 点击虚拟 object 来进行反虚列化,显示一下,看看正不正确。 那现在比如我们的 score 里面包含数学分数和英语分数呢?新建一个类,我们取名叫 grade, 里面分别是数学成绩和英语成绩。 这里 score 的 类型就不能是 excel 了,要改成 grade 可以 看到这里不能直接赋值了,我们要先实立化 score, 分 别对英语和数学成绩赋值,来看一下序列化的结果。

我发现很多人对 jason 提示词有一个很大的误区,那就是以为只要把提示词写成 jason 格式,画面就一定会变好看错, jason 本身并不负责审美,它真正解决的问题只有一个,那就是让结果变得更可控。今天三个角度教你了解并掌握 jason 提示词。首先, jason 只是一个结构化指令,它并不能让你的画面更艺术, 只能让输出更干净。所以我们在使用 jason 的 时候,一定要明确结构框架,正确的写法是主体加环境加风格。这样,第一行一定是 subject, 它是整张图的锚点,后面才是环境和风格。如果你一上来就写风格,你还很容易直接带着风格乱跑。第二, jason 解决的是规划,而不是创意。很多人画面不好看,是你本身的审美描述就有问题, jason 只能帮你减少随机性。所以用 jason 有 一个必要前提,这是你必须先有好的创意参考。像我上期讲到拆解电影的拍摄,其实 就是为了能够更好地获得复现画面的条件。如果你给 jason 的是创意,那很难得到你想要的效果。第三, jason 并不是在所有工具里都好用,比如在密室里中, jason 几乎没有意义,因为它主要识别的仍然是自然语言。真正能把 jason 用到极致的地方是 偏工作流的 ai 工具。在这里, jason 更像是一种生产工具,能把一次成功的画面复制成一整套,稳定输出。但如果 你只是想快速尝试风格,直接输入文字反而更高效。所以总结下来, jason 提示词解决的是掌控感和一致性。自由提示词保留的是探索空间和创造力,什么时候用, jason 什么时候不用,本质上取决于你当前的目标,而不是哪种写法更高级。我制作了很多 ai 创作教程,放在站点里,从提示词到实战都有详细 的教学,大家可以去看看。如果你也对 ai 感兴趣,关注我,带你探索更多 ai 技巧。

hello, 大家好,这里是大卫,今天想跟大家介绍一下怎么将 cloud code 的 skills 搬到 oops 点里面,让我们通过 gemini ly 来去进行使用,然后在 gemini ly 里面去用这个 skills 的 话,它也是可以免费使用的,也就是说你不需要付费,你同样的可以 有一定的额度去使用这样同样的功能。呃,之前可能很多朋友都听说过在 cloudco 里面可以去用 skills, 但是 你要用 cloudco, 不 管说你是本身用的 cloud 的 模型,或者是你用的国内的智普或者是 mini max 的 模型,你总之都是需要去入费,付费之后你再在 cloudco 里面去用 skills 的 这样一个技能。但现在我们用 german client 的 话呢, 普通的用户就是只要你有 google 账号,你都可以去使用的。每天有一千个 request, 然后每分钟有六十个 request 的 real limit。 当然,如果说你是一个呃 jimmy ai pro 的 用户的话,你整个的 real limit 会更高,你受到的限制会更小。 那我们要实现这样子的一个步骤,首先一个就是要在电脑上面去装上 gemini, 我 之前有个视频还有一篇文章也介绍过。那今天需要去强调的是,现在 gemini 里面支持 skills 是 在最新的 preview 版本才支持的, 所以呢,我们需要去装到最新的 preview 版本。当然,如果说你说,哎,我原本就没有装过。 jimmy klein, 我 不知道怎么样子去使用,那你可以将这样一段 文字复制好之后,你就告诉 ai 任何一个 ai, 你 告诉他说我要在我的电脑上面,我的电脑是 windows 或者是 mac 安装。 jimmy klein, 请你教我一步一步的怎么操作,你就去操作就可以了,如果说你已经装了 jimmy klein 的 话呢,你就复制这个名, 然后我们现在来试一下啊, 好,你就把这个命令这样粘贴过来,直接运行就可以了。然后因为我这边是我已经装过了,所以呢,我就直接跑第二条命令,这个命令,我们来查看一下我当前的这个版本是什么, 我们看到它是零点二四 preview 的 版本,如果我们看到越南版版本号是零点二四 preview 的 话就可以了,你就可以接着往下走。那下一步是怎么样呢?就是我们启动了 jimmy, 然后呢输入 settings, 在 里面呢,需要将 agent skills 这个开关改成 true, 它默认的话是 false 的。 然后呢你就可以输入 skills 命令来去查看你当前有哪些 skills。 ok, 我 们可以来演示一下。 比方说啊,我现在起一个终端, 那至于说怎么在 obsit 里面去用上 gemini client 或者 client code, 我 之前有另外一个视频介绍过,感兴趣的朋友可以去看一下。 然后我在这儿输入 gemini, 就 可以去启动 gemini client 这个工具了。好,一键启动。然后呢输入 settings settings 这边呢搜索 agent skills, 那 我这边的话是已经设置成 to 了,那可能你第一次进来的话,它默认是 false 的, 你就按一下 enter 键,然后它就会变成 to, 然后呢按 esc 退出。在这里呢,你就可以输入 skills, 然后如果你能看到 skills 这样一个列表出来的话,就说明你这边已经 ok 了。 好,那接着我们到下一步。刚才说到我是怎么把 cloud code 的 skills 怎么弄过来呢?比方说我原本已经有 cloud code 的 skills 了,那我现在想在专门的课里面去使用。 我有跟 ai 聊过,他给我的方式,第一种的话是直接复制一份过来,但这样的话呢,会有一个问题,就是后续可能我需要去两边都维护,如果有任何的更新的话,那我跟 ai 聊过之后呢,他给到我的建议就是通过软链接的形式 把 cloud code 那 边的 skills 练过来。那呃,你可以用这么一句话,你就告诉他说,哎,帮我查看我当前项目目录下是否存在有 cloud code 的 skills, 如果有的话,通过软链接的方式放到 gemini skills 里面,那他就会去帮你去进行操作了。 那为什么这一招很少呢?就是你在后面只需要去维护 ko 的 那一份 skill, 就 可在 jameson 这边可以自动同步更新的,那这样一装之后呢,你就可以一个地方维护,然后我在 jameson 这边就可以享受到 skills 的 无限的好处了。 刚才说了这么多,其实都是巴拉巴拉巴拉,我现在跟大家去演示一下,比方说我之前其实是用 啊刚才我介绍的这个方式,把 coco 里面三个 obsidian 的 skills 去通过软肋键的形式放到了 jason covers 这个 skill 来生成一个 obsidian 的 看板, 就是基于我一篇文章来进行生成一个看板,我们看一下具体的,我在这儿找一篇文章,比方说 这个就是昨天的那篇文章,就这一篇,然后我们将这篇文章告诉他,复制一下名字,帮我将这篇文章用 skills 生成一个画板, 我就发给他,他会去找对应的 skill, 因为我的那个 pro 的 额度已经用完了,所以呢,刚才你会看到我是切换到 flash 的 模型下面,他好像是找到了这篇文章。 好,他找到了这个 skill, 然后我同意,应该是已经创建出来了,我们可以看一下效果在这里。 ok, 你 会看到他就寄予我刚才的那篇文章已经生成出来了这样的一个看法。 ok, 那 在这里的话,你是可以去编辑等等等等。相比于可能原本你需要手动的去进行操作,你现在直接调用这个 skills 就 可以,而且你在 demo 里面去使用的话是完全免费的。 ok, 以上就是今天想跟大家去分享的内容,好了,谢谢大家,拜拜。

上周复盘事故报告发现,我们的 agent 系统在过去九十天里因为输出格式异常触发了四十七次报警,平均每两天一次。 有意思的是,这套系统上线前我在 prompt 里写得清清楚楚,请严格按照以下 json schema 返回数据,不要包含任何额外文字。然后大模型用实际行动告诉我,他不认识什么叫严格。 先说说他都干过什么好事儿。第一类,礼貌性自杀,让他返回用户意图分类,他给我来一句好的,根据您的要求我分析如下,然后才是那个 jason, jason 点 low 的 直接暴毙,他就是忍不住要跟你客套两句,哪怕你反复强调不要说废话。 第二类, markdown 强迫症,明明没让他用代码块儿,他偏要给你包一层三个反斜杠, jason 再加三个反斜杠结尾,这层包装直接把我的解析逻辑干蒙了。 第三类,薛定乐的类型系统,同一个字段, user id, 它有时候返回数字一二三四五,有时候返回值字母串,一二三四五,有时候返回 no。 还有一次,它返回了暂无两个汉字,你的后端代码崩溃的莫名其妙。 第四类,截断式崩溃,长截算输出到一半儿 to 用完了,直接断在一个冒号后面,后面的值没了,右大括号也没了,这种残缺结构很多修复策略都救不回来。 第五类,幻觉式补全,让他提取三个关键词,结果里只有两个,他就自己编一个凑数字段,数量是对了,内容是假的。第六类,单双引号混用标准, jason 要求双引号,但模型有时候会用单引号包字母串,人眼看着没问题, jason 点 low 的 直接报凑。 第七类,尾随逗号二组最后一个元素后面多加个逗号。 python 的 字典语法允许这个,但 jason 标准不允许。第八类,未转译字母,字母串里出现换行符、制表符或者反斜杠模型,没有正确转译,直接塞进去了。解析器一脸懵, 为什么会这样?因为大模型从根本上就不是一个执行指令的系统,它是一个预测下一个 to 肯的系统。它不知道 jason 有 语法规则,它只知道在见过的语料里,左大括号后面大概率跟着双引号, name 冒号后面大概率跟着一个字母串。 这种概率预测在百分之九十九的情况下恰好符合语法,但剩下那百分之一,足够让你的生产环境每天爆炸几十次。更麻烦的是,这百分之一的出现时机完全随机。同样的 prompt, 同样的输入,跑一百次可能有九十九次正常,但你永远不知道第几次会翻车。 这就是为什么 demo 永远完美上线,必出事故。 github 上有个叫 jason repair 的 开源库,四千多个 star 专门解决这个问题。它的作者在项目介绍里写了一句话特别到位,有些大模型在返回规范 jason 这件事上有点不靠谱,他们有时候漏个括号,有时候多加几个字,因为这就是大模型会干的事儿。 幸运的是,大模型犯的这些错误,通常都简单到可以修复,而不用毁掉整个内容。这句话道出了 jason 修复的核心哲学,不是重新生成,而是就地抢救。 我们踩完坑之后,总结了一套防御体系,第一层 prompt 工程,从告诉他怎么做到让他没法做错, 别只说返回 json 这句话对模型来说,约等于没说要给 fewshot 势利,而且正利反利都要给。明确告诉他不要说好的,不要用刻代码块,不要解释,直接输出纯 json, 第一个字母必须是左大括号,最后一个字母必须是右大括号。 更狠一点,把 json 写进去,精确到每个字段的类型,每举值是否必填模型能看懂结构式约束,虽然不保证遵守,但概率会高很多。 第二层,输出清洗。假设它一定会犯错。拿到输出第一件事不是解析,是清洗。用正则把开头的客套示话砍掉,把 markdown 客代码块标记拨掉,把可能存在的 bug 头干掉,把首尾的空白字符去掉。 我们内部有个专门的清洗函数,里面大概有十五种边界情况的处理逻辑,全是线上事故积累出来的。第三层,智能修复,这是整个防御体系的核心。 pyson 标准库的 jsonloads 太严格了,对于大模型输出来说,严格到不近人情。这时候 json repair 这个库就派上用场了。它的设计理念很简单,但很有用,按照 json 的 语法规范去解析,一旦发现不对劲儿,就用一套启发式规则去修复。 具体能修什么呢?单引号自动替换成双引号,尾追逗号自动删除,缺失的引号自动补齐, true, false, no 这些关键字如果被错误地加了引号,它能识别出来 自复串里的依法制服,能自动转移,甚至数组或 object 中间断掉了,它也能尽量补全成一个合法结构。 用法特别简单,直接用它提供的漏函数替代时代标准库的 json 漏就行,它内部会先尝试正常解析,如果失败再启动修复逻辑。 更妙的是,它完全不依赖任何外部库,纯拍损视线,不管你的技术战是什么,都能用。这个库的作者说他找遍了市面上的方案,没有一个足够清亮有足够铄铐的,所以自己写了一个。这种痛点只有被线上事故折磨过的人才懂。第四层, skima 狡辩,类型安全是最后一道防线, 解析神功不代表数据正确。 json 结构的合法了,但自断类型可能还是错的,必须用 pydematic 或者 json schema 做强类型脚印自断缺失,类型错误,每举职越界全部连结。不要相信模型会遵守约定,它不会。 第五层,自我修复循环,用魔法打败魔法。如果前面所有手段都失败了,还有一招,把原始输出和爆出信息拼成一个新的 prompt, 让模型自己改错。告诉他,以下 jason 存在语法错误,错误信息是什么什么?请修复后直接返回正确的 jason 不要解释, 这一步大概能救回百分之八十的失败请求,但要注意设置目大重试次数,两到三次就够了,别让它无限循环,又浪费钱又浪费时间。 第六层,约束解开终极方案,从根源上杜绝语法输出。如果你在用 v l l m 拉玛点 c p p outlines 这类框架做本地部署,可以直接在解码阶段做语法约束。 原理是模型每次要输出一个 token 之前,先检查这个 token 是 否符合 jason 语法,射态机不符合的直接屏蔽掉,强制他只能走合法路径,这是唯一能做到百分之一百格式正确的方案,但代价是推理时间会慢百分之十到百分之三十,而且只适用于自部署方镜。 调 api 的 话,部分框架已经支持结构化输出服务,比如 open ai 的 jsonantropic tool use, 这些本质上也是约束解开的变体。后台帮你做了语法约束,优先用官方方案,省心省力。讲到这里,把这六层房线串一下。 第一层, prompt 工程,降低出错概率,从百分之五降到百分之一。第二层,输出清洗,处理那些模型家的包装和客套化。第三层,智能修复,用 jason repair 这类工具抢救语法错误,能救回百分之九十以上的残次品。 第四层, schema 校验,确保数据类型和业务逻辑正确。第五层,自修复循环,让模型自己改错,兜底再捞一波。第六层,约束解码,从根源上杜绝问题,适合对稳定性要求极高的场景。 这六层叠加下来,我们系统的 jason 解析成功率从百分之九十五提升到了百分之九十九点九,那剩下的万分之一通常是截断太严重,或者模型彻底胡说八道,这种情况只能返回错误让上层业务处理了。 最后说点心里话,我见过太多人觉得 ai 应用就是调几下 api 的 事儿, prompt 写完 demo 一 跑,效果很好,收工,然后上线第一天就被输出格式问题打回原形。 这个领域真正的门槛从来不是让模型做到,而是让模型稳定地做到。 demo 的 世界里只有理想路径,而生产环境是无数边界情况的修罗场, 让 ai 携手师很简单,但让他每次都把师精确地填进指定的 jason 字段里,一年调用一千万次,不出一次格式错误,这才叫 ai 工程化。 很多人嘲笑这种工作没技术含量,不就是处理字幕串儿吗?但正是这些看起来不起眼的脏活累活,决定了一个 ai 产品到底能不能上线,能不能扛住真实流量,能不能让用户用得顺畅,而不是天天遇到爆破。这就是 ai 工程师和 ai 玩家的区别。

solo 二,模仿爆款视频到底该怎么做?百分之九十的人都做错了,我先跟大家讲一下他错在什么地方,然后在视频的最后我会给大家讲清楚我们测试过的流程,我们教给我们学员的方法到底应该怎么做?首先你们去模仿的话,你们可能说会去在平台上找到一个比较爆款的视频,然后把它下载下来, 我们再把这个短视频呢扔给那个 gmi 三,让 gmi 三反推出相应的提示词,我们再把这个提示词喂给 solo 二,让他去产出相应的一个视频。但是你们会发现产出来的视频 角色不一致,声音不一致,整体的画风度不一致,而且每一次生成它都会有很大的偏差,所以我说这个是错误的方法。为什么? 因为你每一次都没有把它进行一个格式的固定,你想一想你每次给它反推出的提示词是不是每一次都不一样?你用相同的视频,它会有不同的提示词,所以按照这套流程走下来,你会发现你的视频的质量确实会差的很远。那我们学员是怎么做的呢?我们会利用到一个结构,叫做 jason 结构,学计算机的应该就能知道什么叫 jason 结构, 它是最小的结构下能够储存最大的信息密度。它有两部分组成,一个是关键词,一个是关键词的示意,它的结构是这个样子的,所以你们可以看出来它的结构是很规整的,那在这种情况之下,我们就让它反推出来它每一次的这个排序基本上是一样的, 可能只是有一些文字有一些略微的差别,所以我们模仿爆款最好的方式就是把这个视频扔给 jason 的 数据格式返回,然后你就会得到这样的一个提示词,我们再把这个提示词扔给 solo。 二,你会发现它生成的视频 不管说是在质量上,还是在各个属性的统一上都做的特别好,给大家看一下最终的效果, 好了,大家赶快去试一试吧!

程序员一定要了解常用的数据格式和他们的优缺点,因为无论是配置文件、序列化、数据请求,还是消息交换中都会用到。但我保证很多同学不会全部知道,所以我特地做了汇总。请将本视频看完,一定让你大开眼界! 一、 xm l 可扩展标记语言早在九八年诞生,和俺一样大,用它来表示一位学生的信息,大概是这样的, 它的优点是格式标准简单而又灵活,层级一目了然。但缺点也很明显,内容重复导致数据量变大,因此现在很少用 xm l 来做数据交换,取而代之的是更为轻量级的 fashion 格式。听名字就知道他和 的关系很铁,用他来表示同样的学生信息,你会发现经典了很多。 fashion 是现在主流的前后台交互数据格式,数据量小,传输快,且具有良好的可读性,便于快速编写。 但是呢,筛选他也不是无敌的,他的语法过于严谨,并且无法添加注释。所以呢,就有聪明的人设计了 fash, 面向超 facebook 的脚本语言的 fashion, 但他比 zishion 的语法更宽松,更精简,还可以编写注释, 但是比较局限,现在用的人还不多。 giss 虽然已经很清亮,已经很快了,但是还有更快的,像 pro to buff, 它是猪肘开发的用于招笑存取结构化数据的工具。你需要先定义一个格式文件,比如说 说学生刷头 buff, 会根据该文件对消息进行压缩、发送和接收解析,从而提高传输的效率。但他虽然性能高,可读性和通用性却低了一些。然后还有一些配置文件中经常用到的数据折示。先说说 它是一本字典,一个间名对应一个纸,非常的直白,被广泛的应用于项目的属性定义。但 但是他的缺点也很明显,就是需要重复定义很多的字段,要修改的时候就很麻烦。因此现在很多框架都开始使用样格式 来作为配置文件。一样是 fashion 的孙子,不仅完美继承他的语法,还更简洁优雅,功能更强大。他用空格表示缩进结构就像一棵树, 可读性贼高,还很适合作为数据训练画格式。最后啊,再来说说这个新兴创目标是成为最小的配置文件格式。 他彻底放弃了括号和缩进,而是采取了烈士声明的方式,更易于阅读。 tom 也贼灵活,可以无二异性的转换为一个哈西表,从而支持各种编程语言的解析,也越来越多的应用在配置文件中。 哎呀,说了这么多,小伙伴们使用过几种呢?欢迎在屏幕上告诉我。那总结一下,从插苗 再到唱,虽然数据格式很多,但是他们都是在朝着便于人类和机器理解数据的目标发展,表达能力越来越强,书写也越来越快捷。当然,人们的需求是多样的,因为 此各种折饰都有适合的应用场景,没有绝对的优劣啊,未来也必然会出现更先进更多元的数据折饰。好了,偶尔小伙伴们觉得有用请扣一,没用请扣二,大家的意见和支持会帮助我产出更好的作品,我是鱼皮,还有更多编程扎货。

我说出来你们可能真的不信,仅用一段 jason 提示词就能完美的保持人物的一致性。首先打开豆包,上传一张你的图片,再输入这段提示词,豆包就会给你生成一个 jason 文件。 再打开 ai 创作,粘贴刚刚生成的 jason 文件模型,选最新的四点五比例,选三比四,风格选人像摄影, 点击生成就能直接生成风格一致的一组图片了。最厉害的就是可以保持人物一致性, 服装和妆容统一,还具有摄影的光影特点。修改 j c 文件中的背景为杭州西湖,效果比口头描述强的多,还可以把背景换成故宫,换成海边,甚至还可以再换一个日照金山。

来我们讲一下这个面试题啊,谈谈你对 json 的 理解啊,我总结了这么几点啊,一、 json 是 一种基于文本的轻量级的数据交换格式,它可以被任何的编程语言读取和作为数据格式来传递。 二、在项目开发中,使用 jason 作为前后端数据交换的方式。在前端,通过将一个符合 jason 格式的数据结构序列化为 jason 四幅串,然后将它传递到后端,后端通过 jason 格式的四幅串解析后生成对应的数据结构, 以此来实现前后端数据的一个传递。三、因为 jason 的 语法是基于 gs 的, 因此很容易将 jason 和 gs 中的对象弄混。但是应该注意的是, jason 和 gs 中的对象不是一回事, jason 中对象格式更加严格, 比如说,在 json 中,属性值不能为函数,不能出现 n, a, n 这样的属性值,因此大多数的 json 对 象是不符合 json 对 象的格式的。四、 g s 提供了两个函数来实现 g s 数据结构 json 格式的转换处理。 嗯,有 json 点 string, f, f, y 这个函数啊,是通通过将一个符合 json 格式的数据结构转换成为一个 json 字母串 json 点 pass 啊,函数这个函数用来将 json 格式的符号串转换成一个 json。 呃, gs 数据结构。好,关于 json 的 一个总结我们就到这里啊,下课。

我去, a i 圈大地震了,只因国外爆火的 jesus 题日词用来控制一次性的这个方法效果实在是太逆天了,现在只要一张角色的特写,再配合这段 jesus 题日词,就可以实现不但更可控,并且品质更高的画面,关键它能将细菌四点五以及 nano pro 模型发挥到极致, 所以大家一定要掌握一下。相关文件已经上传到网盘,那我来演示一下。首先我们将这张图片传给豆包,反推一下提日词,他依次给我们生成了这个画面的五条提日词啊。然后我们进入 ai 创作,首先我们输入第一条,上传这个参考的角色,我们生成继续看一下, 看到了吗?生成的效果还是一般的,就算你们用了这段提示词,他生成的效果也是差不多的。然后我们将这段生图提示词进行拷贝,重新拷贝到新的对话框里,再将这段超长的接生提示词拷贝到框内, 只是豆瓣的超详细的提示词就完成了。然后我们继续的进入 ai 创作,再将这个接生的提示词拷贝过来,这个角色我们同时也上传一下,然后再次生成一下,我们看下效果, 看到了吗?这就是普通的提示词和健身的提示词的区别,健身的提示词能将细菌四点五发挥到极致,效果非常的惊艳啊,那我们来分析一下它为什么能够提升品质。我们再将这段健身提示词翻译一下,它将每个分类都描述的非常详细,然后你也可以修改这个健身的提示词, 它就可以制作出各种的视频封境了,当然这个体字词在 confi ui 里的 nano pro 也能同时使用,然后我们继续生成一下,看到了吗?这个豆瓣的体字词 c 均四点五以及 nano pro 都是同时可以兼容的,所以它的应用性会非常的广泛,大家快去探索吧!

这个字幕串我们如何变成?哎,我们平时的这种输出的可以去解析的呢?那这里就要讲的第二个就是关于 jason 的 解析啊,我们还有一个功能叫做解析 jason, jason 呢就是可以把一个完整的 jason 的 字幕串,把它解析出来,一条一条的,方便后续 使用。工作流的时候呢,后续的模块方便去提取里面的内容。那这个的话我们来看一下啊,我们添加一个模块,还是搜 jason 好,选择节省,这里有一个解析节省,我们选一下,这里是解析,看到没?好,我们点击,比如说我们解析一下这个 ai 刚才输出的节省,我们选中 通过数据印刷的方式,就是这个结果,对吧?我们把它选进来,或者点一下结果引进来保存,我们再运行一下看一下。 好,我们看一下 duisc 输出的是一个字母串, jason 里面呢就没办法选,因为它是整个的一个字母串,你不方便从里面选。比如说我要商品的数量五,对吧?我要对它进行预算,没办法进行实现,那通过解析 jason, 我 们可以看它输出 的是这种结构了,是不是非常明确?你像我们之前教的,这里面有教我们打,可以把它打开啊, 它有标识,整个是一个 collection, 是 一个 jason, 这个呢是一个建值队,建值队,建值队,然后这个也是 collection 啊,商品清单是一个 array, 是 一个数据库,对不对?那 把它解析呢?其实就把它打开,把它拆分,方便我们后面进行使用,比如说解析之后,后面我们就可以对它进行熨算,我再添加一个,比如说设置一个变量 啊,随便啊。好,这个变量,比如说我们计算一下商品的价格,那这个时候呢,你看把它解析出来之后,这里我们就可以选择进行一些数据印刷了,比如说商品的总额金额,乘以金额不就是它的总额吗?或者是 总数乘以十负金额,求出单价嘛,都是可以的,比如说我们十负金额,然后呢这里有预算符,加减乘除预算嘛,我们除以一下啊,这个是除,除以 总数,那输出的就应该是一个单价,对吧?我们点击啊,把 jason 拆开之后,我们就可以提取,然后再进行后面的操作,就是这样的一个逻辑。好,我们看一下这里输出的 这里呢他已经进行了一个计算了,除法计算,就这样的这一节课呢,就是主要讲怎么样在 mac 里面去进行处理 jason 的, 实际上 mac 里面的每一个模块,他们的本质都是对 jason 进行处理,无非就是怎么样去创建一个 jason, 怎么样去拆分一个 jason, 怎么样去提取 jason, 基本上就是这些操作,增删改查嘛,基本上也就这些。好,下一节课开始呢,我们将会开始着手搭建第一个工作流,对吧? 有一些偏理论的东西呢,这节课基本上都到此结束了, mac 自动化最核心的东西,前几节课啊,以及这一节课都已经讲完了,接下来我们就开始进行实操了,在实操里面我也会反复的去给大家讲解这些概念,希望大家能够跟着我们的课程一起学习,我们下期视频见。

好,说一下这个 python json 这个文件啊,这是五 u 源码里边这个文件,它里边包含了很多很多的字段,有可能说这个字段我看不懂啊,那我一试解释一下啊,这里边其实牵扯到工程化里边的很多知识,整体来说的话,这里边的字段啊,它包含两个部分, 一个部分呢是标准制段,就是 n p m 官方定义好的制段啊。第二个呢是非标制段。这种制段啊,那情况就很多了,有可能是作者自己定义的,比方说这个无忧园吧里边儿,由于些他自己定义的制段,自己给自己看的。另一部分呢,可能是一些工程化的工具,像什么构建工具啊,什么 t s 啊,这些东西看的啊, 都是有可能的,咱们一个个说吧。好,首先是这三个,这三个呢是标准字段啊,包的名字就是我们用 n p m 去下载的时候,包的名字就在这里定义,然后版本和描述没什么好说的。然后下边这个呢是标准字段啊,这个字段呢,我上节课是有详细讲解的啊,可以往回翻一翻。然后下边这个呢是飞标字段,它呢主要是给构建工具看的。 我们在使用一个构建工具的环境下,去导入一个包的时候,特别是使用那个 e s mark 的 方式来导入一个包的时候,那么它会把这个文件的内容给你,因为我们知道啊,在构建工具里边往往会使用一些树摇优化,是吧?那么树摇优化呢,它就必须要要求它是一个 e s mark, 那 么这个对应的文件呢,就是一个 e s mark 的 文件,它会把这个文件给你, 下边这个呢是给 t s 看的啊,就是整个包的类型定义文件啊,这四个都是飞标字段啊,下边这两个呢是 c, d, n 的 飞标字段,给 c, d, n 看的啊,这是两个 c, d, n, 对 吧啊? p k, g 以及呢? g, s, d, d, r 非常知名的两个 c d, n, 就是 有些用户呢,他在导入一些包的时候,他会使用 c, d, n, 用这种方式来导入的时候呢,那个 c, d, n 会从 n p m 上去下载对应的文件啊,如果说他没有的话,他就会去下载, 下载的时候他从哪里下载啊?给他指定一个文件路径,然后呢?下边那个呢是标准之端,它是指的我们这个包开发完成之后,不是要上传到那个 n p m 上吗?对吧?那么上传的时候它不一定是所有文件全部上传,比方说像这里啊,我们可以看到啊,这个目前这个包里边呢,其实还是有很多东西的, 那么他上传的时候呢,他到底上传哪些?由这个字来指定?比方说他这里就指定了两个东西,一个是 index, 一个是目录 guest, 只上传这两个东西。那么这就意味着当我们去安装这个包的时候啊,比方 我就安装一下啊, m p m i 好, 安装,这个好,安装完了你看一下啊,这里个 relative 里边是不是只有两个文件了啊?一个是 index, 一个是 disk, 那 其他的文件呢?都没有了是吧?就这么个意思。 好,下边这个字段是飞镖字段,它也是个构建工具,看的就在构建工具环境里边呢,你在导入包的时候可能有很多的导入方式,比方说你使用 import 方式来导入,那么他就对应到这,那如果说你使用别的方式导入呢?比方说 abc, 那 么他就对应到下边这种情况,那么在不同的导入方式的时候,他到底给你提供什么样的模块文件啊?由这个时段来指定啊?如果说你不写的话,他读啥?他读上面这个就 读这个东西了啊,你写的话,他就会按照这里的逻辑来进行细致的读取,那么这里边呢,有很多的配置方式啊,呃,详细情况呢,就是根据构建工具他自己的要求来定了。呃,比方说像这里,那么这里呢,就是说,呃,我们在导入这个包的时候呢,他可能有很多的场景,比如说有 ts, 他 要读取他的类型定义文件到哪里去读, 然后在漏的环境里边针对不同的模式,什么生产环境啊,开发环境啊,还是默认情况啊?那么他分别读到什么样的文件啊?就指定的是这么个东西 啊?下面这个呢是飞标字段,主要是给构建工具看的,来标识一下整个包有没有副作用,它会影响到树摇优化。下面这个呢是标准字段,它指的是整个包它上传过后呢,它的仓库的一些信息啊,仓库的类型,仓库的 u、 i、 l 地址以及呢仓库的目录,比如说我们到 n、 p、 m 上去搜索一下吧,就这个包好进去看一下啊,你看这里,他的仓库地址,这个地址的信息哪来的?就来自于这里。 下边这个呢是飞标字段,它是作者自定义的,就有一些自定义的这一块呢,如果说你研究过物流的原版的话,应该知道啊,它是用来提供一些 roll up 的 打包信息的啊,就它在编辑一个打包脚本的时候呢,它会读到这个信息, 比方说像这个 relative 这个包啊,就是做这个响应式的包,那么它取个名字,然后呢,它会打包成几个版本啊?下边是打包的几个方式,它会打四个包出来。好,下边这个呢是标准字段,这个字段呢表示说,嗯, app 上的搜索关键字,用什么样的关键字可以把它搜到下边儿那个作者, license, box, homepage, dependencies, 都是标准字段啊, license 不 用说了啊,提 供一个开源许可类型。然后呢, box 呢,是提交的 e q 的 地址,然后缓存呢,你看它就会影响这儿,一般是展示一些官网的主页,它没有官网的话,它往往会给一个 disshopper 的 地址。下边儿这个都没什么好说的啊,这就是整个 python 的 json 文件里边儿的所有字段了。