只需要return 一个单元格进行搜索

Need to return only one cell based on the search

我正在 python 中尝试 maltego 转换,我需要的是 return 只有一个基于此搜索的单元格

@staticmethod
   def get_names(search_person_name):
    matching_names = []
    with open("examplefile.csv") as f:
        for ln in f.readlines():
            person_name, data = ln.split(",", 1)
            if person_name.strip() == search_person_name.strip():
                matching_names.append(data.strip())
    return matching_names

.csv 文件包含以下列:

person_name,data,streetaddress

我想,根据搜索条件,它只会 return 单元格 data

包含街道地址列的行

有什么想法吗?

这是一种方法: 替换

    person_name, data = ln.split(",", 1)

    person_name, data, unwanted_column = ln.split(",", 2)

这会创建一个您从未使用过的额外变量,但目的是将其与您想要的数据分开。

您的“data”值为“data,streetaddress”的原因是您将拆分功能设置为仅执行 1 次拆分。

person_name, data = ln.split(",", 1)

split() 函数的第二个参数设置最大拆分数。由于您将它设置为 1,它只会拆分它看到的第一个“,”。由于文件的内容是“person_name,data,streetaddress”,那么变量就变成了:

person_name = person_name
data = data,streetaddress

如@TBaggins 所述,最简单的解决方法是将该行更改为:

person_name, data, streetaddress = ln.split(",", 2)

这使得 2 个拆分线并将这 3 个值放在它们各自的变量中。