问题标签 [anytree]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - python库'anytree'中的Findall()搜索功能返回NameError:'findall'未定义
我正在将 python 中的 anytree 库用于我正在处理的一个项目,该项目利用了该库的树功能。我希望能够在树中搜索,但文档中显示的搜索命令不起作用。
这是直接来自此处找到的文档的示例树:https ://anytree.readthedocs.io/en/latest/api/anytree.search.html#anytree.search.findall 。
当我在 IDLE 中复制这个确切的代码时,我最终得到了这个错误:
请让我知道我是否需要导入其他内容,或者是否有任何其他方法可以使用 anytree 搜索树。
python - 使用 DotExporter 渲染自定义类节点树
我最近使用anytree和Dot Exporter来渲染由我自己的类组成的树。
问题是当我尝试输出树的png文件时,图片中的name属性不对。例如,树看起来像这样(.dot 格式)
而这棵树的png图像使用DotExporter(root).to_picture(root.name + ".png")或我首先将其保存为点文件,然后将其转换为png,如下所示:
结果png文件是这样的(节点的名字都是奇数递增的,应该是像'%a', '%1'这样的名字...)
我也尝试过设置nodenamefunc,但没有任何区别......有人可以帮我吗?感谢任何评论!
python - 使用anytree从带有缩进的文件生成树
我正在使用anytree从文件中生成树,Tree.txt. 每个缩进为 3 个空格 ( )。这是我的文件的样子:
这是我到目前为止生成代码的内容:
但是,这会打印出来:
生成的树很好,但直到Node4-Node5并且Node6丢失了。这是意料之中的,因为我没有处理当前缩进小于前一个缩进的情况(请参阅 参考资料# what should I do here?)。
当前缩进小于上一个缩进怎么办?我知道我需要n更上一层楼,但我怎么知道那是哪一层呢?
python - 为什么我的 PLY 解析器没有将任何树节点正确地组合在一起?
我正在尝试在 Python 中构建一个 CAS,目前我正坚持实现解析器,我将使用它从表达式字符串转到我最终可以操作和简化的 Anytree 树。问题似乎是,在解析时,yacc 没有GROUP使用我的解析器语法规范中定义的正确子节点来实现我的节点。我试过弄乱优先级和关联性,改变语法规则的顺序,但似乎没有什么能让它正确地成为节点的父节点。更奇怪的是,在调试/详细模式下,当它与表达式模式匹配时,它会为表达式创建一个节点,但它(出于某种原因)GROUP在识别LPAREN expression RPAREN令牌时无法将其作为节点的父节点
这是我的代码:
样本输入:(2)+(2)
样本输出:
如您所见,它仅创建GROUP节点,并且不会在所述节点下创建任何子整数GROUP节点
编辑:使代码自包含并添加示例输入和输出以更好地解释问题
python - 显示所有根节点、父节点和子节点(甚至是重复节点)的树图
我目前正在尝试从包含某些脚本的数据框中创建一个树形图,这些脚本需要根据它们的parent/child关系按特定顺序执行。但是,我没有收到正确数量的孩子。我的 DataFrame 如下所示:
这是我到目前为止的代码:
我有 3 个根和几个正确显示的父母,但孩子们在被包含一次后似乎失踪了。
我得到的结果:
我认为由于这种逻辑,我没有收到我期望的全部结果。
我需要所有的孩子都在树里面。(00_06_MaxBIS_v2-2.sql)因此,例如在 3rd Root00_07_AnlagenDatenLaden_v1-7.sql小时候,但缺少00_Gebietsstrukturen_v1-2.sql.
有没有办法包含重复的孩子并将它们正确地放在树内?我可以使用什么样的逻辑来接收预期的结果?
python - 在anytree中按id添加新节点
我正在尝试实现一个树,每个“部分”节点具有唯一 ID,每个部分中的每个子节点都有唯一 ID。我想知道如何用anytree (python). 我试过这个:
但它显示
即,我可以使用解析器找到正确的部分,然后向其中添加新节点,但条件if node_id not in section_node.children:不起作用,因为node_id不是节点对象而是字符串对象。
我知道我需要再次使用解析器来检查“section1”节点的子节点是否具有我要添加的 ID,但我更喜欢使用集合section_node.children,因为我认为它比解析器工作得更快,尤其是大树。
python - python数据框从A列创建列表,其中A列存在于B列的文本中以生成二叉树
我正在尝试使用 anytree ( https://anytree.readthedocs.io/en/latest/ ) 模块构建二叉树,该模块使用的数据框包含 B 列中字符串文本中的 A 列中的项目:
我想根据 A 列中的任何项目是否存在于 B 列中,从 A 列创建一个列表,所需的输出类似于:
我参考了这些文章(Read data from a file and create a tree using anytree in python,Read data from a pandas DataFrame and create a tree using anytree in python)创建了一个初步的树节点结构,但是我在提取内容时遇到了麻烦将 B 列向下转换为第二级以外分支的可用节点。
我可以检测 B 列是否包含 A 列中的项目:
但无法找到一种方法在列 A 的系列中向上查找以放置在与列 B 同一行的 python 列表中。
最终我想使用这些列表来构建一个类似于这样的树:
或者我可能没有正确考虑识别适合父/子节点结构的位置,它应该像这样组织:
python - 在anytree中获取父节点名称
我使用 anytree 为我的自定义分类创建了一棵树,我可以使用以下命令搜索树:
这将返回一个看起来像这样的 Node 类的对象:
因此,对于子 c,d 是直接父级,我只想提取'd'而不是上面提到的整个路径。
任何帮助,将不胜感激 :)
python-3.x - Python anytree:更新最大时间路径
我有一份autosys工作清单。有些作业是由其他作业的成功状态触发的,有些作业是由预定时间触发的,或者状态+预定时间条件都需要满足。
我已经建立了一个节点树,每个节点代表一个工作。由于一个节点只能有一个父节点,而实际上,一项作业可能需要满足多个条件才能启动,我的解决方法是创建节点的多个实例并将它们附加到不同的父节点。
现在我的挑战是确定最大时间路径,但我还不知道。
我的挑战是:
当树建立起来时,并不是所有的节点都有开始时间,因为一些节点是由事件触发的,即它所有的父节点都成功了
一个节点可能出现在多个分支中
这是最小的示例:
我得到了下面的树:
在上面的例子中:遵循 的路径root->a->c->d,然后 d 将开始20:00 + 1 minute +10 minute = 20:11
遵循root->b->e->d: 然后 d 将开始于21:10(as e has a hard time setup as 21:00)
我尝试了一级一级,但由于节点所在的级别不同,它似乎不起作用:(
python - Anytree 到 Pandas 或以节点成员为索引的元组转换
我想从 anytree 对象构建一个 pandas 数据框或元组,其中每个节点都有一个成员列表属性:
我的目标是为每个成员生成一个端节点数据框,或者更好的是,为每列生成一个层级成员资格,如下所示:
我尝试导出到ordereddict和json并直接从那里构建数据框,但是“children”成为结果数据框中的一列,带有有序的dict条目。我找不到解除嵌套的方法。感谢您的任何帮助!

