我有这样一个文件:
2.nseasy.com.|['azeaonline.com']
ns1.iwaay.net.|['alchemistrywork.com', 'dha-evolution.biz', 'hidada.net', 'sonifer.biz']
ns2.hd28.co.uk.|['networksound.co.uk']
预期结果:
2.nseasy.com.|'azeaonline.com'
ns1.iwaay.net.|'alchemistrywork.com'
ns1.iwaay.net.|'dha-evolution.biz'
ns1.iwaay.net.|'hidada.net'
ns1.iwaay.net.|'sonifer.biz'
ns2.hd28.co.uk.|'networksound.co.uk'
当我尝试这样做时,我得到的不是值 domains_list 的项目,而是域的字符。这意味着字典 d 的值中的列表被识别为列表而不是字符串。这是我的代码:
d = defaultdict(list)
f = open(file,'r')
start = time()
for line in f:
NS,domain_list = line.split('|')
s = json.dumps(domain_list)
d[NS] = json.loads(s)
for NS, domains in d.items():
for domain in domains:
print (NS, domain)
当前结果示例:
w
o
o
d
l
a
n
d
f
a
r
m
e
r
s
m
a
r
k
e
t
.
o
r
g
'
]
请您参考如下方法:
您对 json 所做的操作不正确。 s = json.dumps(domain_list) 将列表转储到字符串 s 中。 json.loads(s) 再次读取该字符串,然后您遍历该字符串并打印它,因此输出中只有单个字符。 尝试类似的东西:
d = defaultdict(list)
f = open(file,'r')
start = time()
for line in f:
NS,domain_list = line.split('|')
d[NS] = json.loads(domain_list.replace("'", '"'))
for NS, domains in d.items():
for domain in domains:
print (NS, domain)
