【发布时间】:2018-12-12 19:13:41
【问题描述】:
我正在读取一个文件,我想将数据附加到一个数组中,然后将其转储到 json 文件中。我正在使用 python 2.7。
问题是它只返回文件的最后一行并用它填充文件。 不知道是不是清楚所以我给个代码
import re
import json
results = []
contact = {
"id":"",
"email":""
}
source = open('zen_id.txt')
output = open('zen_id_js.json', 'w')
for line in source:
email = re.search(r'[\w\.-]+@[\w\.-]+', line)
contact['email'] = email.group(0)
p = re.search(r'\d\d\d\d\d', line)
contact['id'] = p.group(0)
results.append(contact)
json.dump(results, output)
输出是:
[
{
"id": "35148",
"email": "****@gmail.com"
},
{
"id": "35148",
"email": "****@gmail.com"
},
{
"id": "35148",
"email": "****@gmail.com"
},
{
"id": "35148",
"email": "****@gmail.com"
},
有人知道发生了什么吗?
提前致谢
【问题讨论】:
-
定义
contact = { "id":"", "email":"" }inside循环。否则引用将被重用。经典 -
让它成为答案@Jean-FrançoisFabre
-
非常感谢!傻我...
-
我试图找到一个重复的,但我找不到(我敢肯定有很多但我很难找到它......)
-
顺便说一句,我们可以用
\d{5}替换嘈杂的\d\d\d\d\d