<p>由于<code>split</code>函数的结果是一个列表(<code>domain = e.split(',')</code>),并且列表不可修改,因此不能将它们添加到<a href="https://docs.python.org/2/library/sets.html#module-sets" rel="nofollow">^{<cd3>}</a>。相反,您可以使用<a href="https://docs.python.org/2/library/sets.html#module-sets" rel="nofollow">^{<cd4>}</a>将这些元素添加到集合中,但您不需要<code>Json</code>,因为它不会分隔域,也不会给出所需的结果,相反,您可以使用<code>ast.literal_eval</code>来拆分列表:</p>
<pre><code>import ast
set_d = set()
f = open(file,'r')
for line in f:
line = line.strip('\n')
ip,li = line.split('|')
l = ast.literal_eval(ast.literal_eval(li)[0])
for e in l:
domain = e.split(',')
set_d.update(domain)
print set_d
</code></pre>
<p>请注意,不要使用python内置函数或类型作为变量!你知道吗</p>
<p>作为一种更有效的方法,您可以使用regex对域进行grub:</p>
<pre><code>f = open(file,'r').read()
import re
print set(re.findall(r'[a-zA-Z\-]+\.[a-zA-Z]+',f))
</code></pre>
<p>结果:</p>
<pre><code>set(['vmit.it', 'tcmpraktijk-jingshen.nl', 'umbertominnella.it', 'studioguizzardi.it', 'telestreet.it', 'israelinnovation.co', 'bsacimeeting.org', 'webdesignhostingindia.com', 'iipmstudents.in', 'maurominnella.com', 'ellen-siemer.nl', 'picsmeeting.com', 'watec-peru.com', 'iipmalumni.com', 'iipmclubs.in'])
[Finished in 0.0s]
</code></pre>