#json #sqlite #dictionary #python-3.6
Вопрос:
Я пытаюсь создать вложенный sqlitedict (потому что «обычный» дикт действительно слишком медленный) для хранения результатов около 1000 файлов json
файл json находится в этой форме :
"AACACTTCCTCACACGG": {
"AnchoredIrrCount": 1,
"IrrPairCount": 0,
"RegionsWithIrrAnchors": {
"chr9:134391648-134391649": 1
},
"RepeatUnit": "AACACTTCCTCACACGG"
Я попытался проанализировать файл json и заполнить дикт циклом, но это не работает. Моя идея состояла в том, чтобы создать вложенный диктант в этой форме :
dict[motif][chromosome][position] = list(person1, person3, person450 ...)
каждый человек-это файл json.
Я попробовал это :
def create_intervalle(pos, chromosome, key, all_pos_dict):
intervalle = str(int(pos)-50) "-" str(int(pos) 50)
all_pos_dict[key][chromosome] = {intervalle : list()}
return (intervalle, all_pos_dict)
def test_key(pos, chromosome, key, all_pos_dict):
if key in all_pos_dict:
if chromosome in all_pos_dict[key]:
intervals = [tuple(map(int, i.split('-'))) for i in all_pos_dict[key][chromosome]]
intervalle = [tup for tup in intervals if tup[0] <= pos <= tup[1]]
if intervalle:
return(intervalle, all_pos_dict)
else:
return(create_intervalle(pos, chromosome, key, all_pos_dict))
else:
all_pos_dict[key] = {chromosome : dict()}
test_key(pos,key, chromosome, all_pos_dict)
else:
all_pos_dict[key]=dict()
test_key(pos, key, chromosome, all_pos_dict)
(intervalle, all_pos_dict) = test_key(begin, chromosome, key, all_pos_dict)
#if i understood well, .append is not working with sqlitedict ?
all_pos_dict[key][chromosome][intervalle] = person
если у вас есть какие-либо идеи или какие-либо другие решения, которые помогут сохранить этот большой объем данных? большое спасибо за вашу помощь !
Морской