Skip to main content
 首页 » 编程设计

Python:如何改造 python 列表并逐行打印

2025年05月04日13Leo_wl

我有这样一个文件:

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)