Я пытаюсь написать вложенный словарь, в котором каждый ключ является запросом пользователя, а каждое значение - это словарь с файлом и частотой запроса в этом файле.
во время поиска я нашел это
import csv
import itertools
def mergedict(a,b):
a.update(b)
return a
fields = [ 'org', '2015', '2014', '2013' ]
dw = { 'orgname1': { '2015' : 2, '2014' : 1, '2013' : 1 },
'orgname2': { '2015' : 1, '2014' : 2, '2013' : 3 },
'orgname3': { '2015' : 1, '2014' : 3, '2013' : 1 }
}
with open("test_output.csv", "wb") as f:
w = csv.DictWriter( f, fields )
w.writeheader()
for k,d in sorted(dw.items()):
w.writerow(mergedict({'org': k},d))
Моя цель примерно такая:
import csv
import itertools
def mergedict(a,b):
a.update(b)
return a
fields = [ 'UserInput', 'Filename1', 'Filename2', 'Filename3' ]
past_search = { 'ham': { 'alice.txt' : 21, 'moby_dick.txt' : 11, 'cat_n_hat.txt' : 1 },
'dog': { 'alice.txt' : 25, 'moby_dick.txt' : 13, 'cat_n_hat.txt' : 8 },
'cat': { 'alice.txt' : 5, 'moby_dick.txt' : 1, 'cat_n_hat.txt' : 1 },
with open("pastQueries.csv", "wb") as f:
w = csv.DictWriter( f, fields )
w.writeheader()
for k,d in sorted(dw.items()):
w.writerow(mergedict({'user_query': k},d))
Я изо всех сил пытаюсь получить из словаря пользовательский ввод и написать функцию чтения, чтобы я мог извлечь данные из csv. У меня сейчас есть это
#Get user's search term
query = input("Please enter your query/queries separated by a comma.")
с этим в функции
try:
with open(filename, encoding='utf-8') as f_obj:
contents = f_obj.read()
except FileNotFoundError:
pass
else:
# Count approximate number of words in the file.
words = contents.split()
num_words = len(words)
for word in words:
if query.title()==word.title():
term_frequency+=1
tf = term_frequency/num_words
#add results to past query dictionary and write to csv
pquerydict[query] = {filename : tf}
with open('PastQueries.csv', 'w') as csv_file:
writer = csv.writer(csv_file)
for key, value in pquerydict.items():
w.writerow([query] + [pquerydict[filename][tf]])