下面是我存储在嵌套的defaultdict
中的列表:
from collections import defaultdict
if __name__ == "__main__":
r = [["Test", "A", "B01", 828288, 1, 7, 'C', 5],
["Test", "A", "B01", 828288, 1, 7, 'T', 6],
["Test", "A", "B01", 171878, 3, 8, 'C', 5],
["Test", "A", "B01", 171878, 3, 8, 'T', 6],
["Test", "A", "B01", 871963, 3, 9, 'A', 5],
["Test", "A", "B01", 871963, 3, 9, 'G', 6],
["Test", "A", "B01", 1932523, 1, 10, 'T', 4],
["Test", "A", "B01", 1932523, 1, 10, 'A', 5],
["Test", "A", "B01", 1932523, 1, 10, 'X', 6],
["Test", "A", "B01", 667214, 1, 14, 'T', 4],
["Test", "A", "B01", 667214, 1, 14, 'G', 5],
["Test", "A", "B01", 667214, 1, 14, 'G', 6]]
s = defaultdict(lambda:
defaultdict(lambda:
defaultdict(lambda:
defaultdict(lambda:
defaultdict(lambda:
defaultdict(lambda:
defaultdict(defaultdict)))))))
for i in r:
s[i[0]][i[1]][i[2]][i[3]][i[4]][i[5]][i[6]] = i[7]
但是,我不确定如何将上面嵌套的defaultdict转换为Dict/JSON(见下文),以便将其存储到MongoDB。在
^{pr2}$有没有一种方法可以避免创建嵌套的defaultdict并将每个元素直接存储到MongoDB并应用更新?在
更新:对于第一个列表,它应该是'chr': { 'i[6]': i[7]}
,它应该给出'chr': { 'C': 5}
。
与第一个列表相比,第二个列表只在最后两个元素上有所不同。
我想把'T', 6
加到前面的chr
得到{defaultdict
,以便组合相同的元素和最后两个不同的元素,我希望将它们存储在chr dict中
解决方案:
为什么要创建那个嵌套的defaultdict结构?您需要快速查找每个密钥吗?如果您在Mongo中保存,为什么不让Mongo通过为重要字段创建索引来为您进行查找呢。在
我只需做以下几点:
相关问题 更多 >
编程相关推荐