我有这样一个文件:
93.93.203.11|["['vmit.it', 'umbertominnella.it', 'studioguizzardi.it', 'telestreet.it', 'maurominnella.com']"]
168.144.9.16|["['iipmalumni.com','webdesignhostingindia.com', 'iipmstudents.in', 'iipmclubs.in']"]
195.211.72.88|["['tcmpraktijk-jingshen.nl', 'ellen-siemer.nl'']"]
129.35.210.118|["['israelinnovation.co.il', 'watec-peru.com', 'bsacimeeting.org', 'wsava2015.com', 'picsmeeting.com']"]
我想提取所有列表中的域并将它们添加到一个集合中。最终,我想有一个每一个独特的领域在一行罚款。以下是我编写的代码:
set_d = set()
f = open(file,'r')
for line in f:
line = line.strip('\n')
ip,list = line.split('|')
l = json.loads(list)
for e in l:
domain = e.split(',')
set_d.add(domain)
print set_d
但它给出了以下错误:
set_d.add(domain)
TypeError: unhashable type: 'list'
有人能帮我吗?你知道吗
使用str.translate公司要清除文本并使用update添加到集合,请执行以下操作:
输出一组唯一的单个域:
您可以将其写入新文件:
输出:
您的代码不会分离到单独的域中,您的json调用实际上没有任何帮助。将代码更改为update将输出如下内容:
也不要使用list作为变量名,因为它会隐藏python
list
您应该调用
update
,而不是add
举例说明
由于} 。相反,您可以使用^{} 将这些元素添加到集合中,但您不需要
split
函数的结果是一个列表(domain = e.split(',')
),并且列表不可修改,因此不能将它们添加到^{Json
,因为它不会分隔域,也不会给出所需的结果,相反,您可以使用ast.literal_eval
来拆分列表:请注意,不要使用python内置函数或类型作为变量!你知道吗
作为一种更有效的方法,您可以使用regex对域进行grub:
结果:
相关问题 更多 >
编程相关推荐