You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PyTaxonomies打印结果存入列表并获取预期格式内容?

问题:如何将MISP Taxonomy对象转换为可读字符串列表?

已完成PyTaxonomies的安装与初始化:

!git clone https://github.com/MISP/PyTaxonomies
cd PyTaxonomies
!git submodule init && git submodule update
!python3 setup.py install
from pytaxonomies import Taxonomies
taxonomies = Taxonomies()

需求:将以下循环的打印结果存入列表:

for i in taxonomies.values():
    print(i)

尝试代码(存在问题):

taxonomies = []

for i in taxonomies.values():
    taxonomies.append(i)

taxonomies

得到的结果是Taxonomy对象实例列表:

[<pytaxonomies.api.Taxonomy at 0x7f67b1d86250>,...]

期望得到的格式:

["CERT-XLM:abusive-content=\"spam\"", ..., "workflow:state=\"rejected\""]

解决方案

问题分析

  1. 错误将空列表赋值给taxonomies,覆盖了原本的Taxonomies实例,后续调用.values()实际是对空列表操作,这是核心错误之一。
  2. 直接存入Taxonomy对象会保留实例引用,而非我们需要的可读字符串格式。

正确代码

# 新建列表存储字符串,避免覆盖原taxonomies实例
taxonomy_strings = []

for taxon in taxonomies.values():
    # 调用str()获取对象的可读字符串,与print(taxon)输出内容一致
    taxonomy_strings.append(str(taxon))

# 输出目标格式列表
taxonomy_strings

原理说明

print(taxon)能输出可读格式,是因为Python自动调用了Taxonomy对象的__str__方法,因此直接使用str(taxon)就能获取相同的字符串内容,存入列表后即可得到期望的格式。


内容的提问来源于stack exchange,提问作者xavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:27:17