【发布时间】:2018-05-16 02:09:47
【问题描述】:
我正在遍历一个列表以生成一些 json。但是当我附加到 listToSave 时出现错误。
listToSave = []
for i in range(len(ffts)):
dataT = dataTemplate
dataT['aClip']['info']['id'] = str(uuid.uuid4())
#More stuff added here
print dataT['aClip']['info']['id']
listToSave.append(dataT)
print 'Data formated - Ready to save'
还有输出:
493838a3-de8e-4bc4-86a4-92999bd625bd
c7c6f984-85b5-478b-9395-48ebd8611ab8
d427dd05-063c-49de-bbff-70b09c56f1fa
98dc6ef5-182d-4963-bc0d-7537bd3ca9e2
74587d54-811c-485e-bbed-1428723a6da1
5052f46e-371d-4bec-b750-e231abd3448d
Data formated - Ready to save
但是,当我查看 listToSave 列表时,我只看到生成的最后一个值重复。
print len(toSave)
print toSave[0]['aClip']['info']['id']
print toSave[1]['aClip']['info']['id']
print toSave[2]['aClip']['info']['id']
print toSave[3]['aClip']['info']['id']
print toSave[4]['aClip']['info']['id']
print toSave[5]['aClip']['info']['id']
输出:
6
5052f46e-371d-4bec-b750-e231abd3448d
5052f46e-371d-4bec-b750-e231abd3448d
5052f46e-371d-4bec-b750-e231abd3448d
5052f46e-371d-4bec-b750-e231abd3448d
5052f46e-371d-4bec-b750-e231abd3448d
5052f46e-371d-4bec-b750-e231abd3448d
帮助?
dataTemplate 获取完整示例。虽然,我相信我在没有这个的情况下尝试过它,它仍然运行。
dataTemplate = {
"aClip": {
"info" : {
"id" : None,
"type" : None,
"author" : None,
"timeStamp" : None,
"output" : None,
},
"t": {
"tData": None,
"tFs" : None,
"tLen" : None,
},
"f" : {
"fData" : None,
"fFreq" : None,
"fLen" : None,
}
}
}
【问题讨论】:
-
dataTemplate永远不会改变,因此,您的循环在每次迭代时都会做同样的事情。 -
你对同一个对象有多个引用。
-
@SPYBUG96 这有什么帮助?
-
请提供minimal reproducible example。您当前的代码将不会运行,因为
dataTemplate未定义。 -
我猜你会使用
i和dataTemplate一起做一些不同的事情?
标签: python python-2.7