10 鱼币
本帖最后由 wrpython 于 2019-6-6 15:24 编辑
大家好,我有一串字典数据需要按照要求分类并暂时存放在列表里,自动创建列表的部分已经完成了,但是不知道该怎么存放到列表中,希望各位大大指点一下,谢谢。
数据的形式如下:
{'symbol':symbol,'price':price,'size':size,'time':mkttime}
具体如下:
{'symbol': 'EFII.NQ', 'price': '36.87', 'size': 100, 'time': '09:11:54'}
{'symbol': 'ICL.NY', 'price': '5.50', 'size': 900, 'time': '09:26:43'}
{'symbol': 'SAR.NY', 'price': '24.44', 'size': 1, 'time': '09:17:51'}
{'symbol': 'GRFS.NQ', 'price': '19.75', 'size': 100, 'time': '09:17:58'}
因实际数据量很大,所以不便放上来
如果symbol从来没有出现过,需要为这个symbol创建一个字典和列表:
这一部分的工作我已经完成,我定义了一个空集合 set1,如果symbol没有出现过,就同时创建一个字典和列表,具体代码如下:
set1 = set()
symboldict = {}
if symbol not in set1:
set1.add(symbol)
symboldict[symbol] = {'symbol':symbol,'price':price,'size':size,'time':mkttime}
i = [symboldict[symbol]]
#print(symboldict[symbol])
#print(i)
复制代码 这部分内容我print之后显示的结果是正确的,确实创建了需要的字典和列表并且没有重复的
如果symbol已经出现过,那么就将数据添加到定义好的列表中,这一部分出现了问题,我的代码如下:
if symbol in set1:
i.append(symboldict[symbol])
if len(i) > 10:
i.pop(0)
if i[1]['size'] == 100:
print(i) 复制代码 预期的效果应该是这样的,列表中的symbol应该都是同一个symbol:
[{'symbol': 'CNXM.NY ', 'price': '15.50', 'size': 100, 'mmid': 'T', 'time': '09:20:12'}, {'symbol': 'CNXM.NY ', 'price': '15.50', 'size': 100, 'mmid': 'T', 'time': '09:20:12'}, {'symbol': 'CNXM.NY ', 'price': '4.39', 'size': 100, 'mmid': 'Z', 'time': '09:08:28'}]
[{'symbol': 'RBZ.NQ ', 'price': '4.39', 'size': 100, 'mmid': 'Z', 'time': '09:08:28'}, {'symbol': 'RBZ.NQ ', 'price': '15.50', 'size': 100, 'mmid': 'T', 'time': '09:20:12'}, {'symbol': 'RBZ.NQ ', 'price': '15.50', 'size': 100, 'mmid': 'T', 'time': '09:20:12'}]
但实际的效果却是这样的:
[{'symbol': 'RBZ.NQ ', 'price': '4.39', 'size': 129, 'mmid': 'Z', 'time': '09:08:28'}, {'symbol': 'CNXM.NY ', 'price': '15.50', 'size': 10, 'mmid': 'T', 'time': '09:20:12'}, {'symbol': 'RBZ.NQ ', 'price': '4.39', 'size': 129, 'mmid': 'Z', 'time': '09:08:28'}]
[{'symbol': 'ICL.NY ', 'price': '5.50', 'size': 900, 'mmid': 'P', 'time': '09:26:43'}, {'symbol': 'AMCX.NQ ', 'price': '59.30', 'size': 10, 'mmid': 'P', 'time': '09:28:10'}, {'symbol': '': 'AZRX.NQ ', 'price': '5.50', 'size': 900, 'mmid': 'P', 'time': '09:26:43'}]
字典元素并没有按照名字分别放入应该在的列表中,而是混乱的,请问为什么会这样?应该如何修改才能让数据正确的加入列表?谢谢!
我来回答