只需要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 个值放在它们各自的变量中。
我正在 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 个值放在它们各自的变量中。