Сохранение пользовательского ввода в файл json python

есть ли способ сохранить эти данные в json-файле словаря, чтобы при импорте в panda их было легко анализировать? и если бы этот код можно было написать более простым способом, это тоже было бы здорово (например, цикл)

#student's profile to be saved in file separately
j = open("jessica.txt",'a')
w = open("wendy.txt", 'a')
t = open("tatiana.txt", 'a')

#user input to record the log
name = input("Name:")
date = input('Enter a date in YYYY-MM-DD format:')
hours = input("Hours:")
rate = input("Rate:")
topic = input('Topic:')

if name == 'Jessica':
    j.writelines("Date:" + date + '\n')
    j.writelines("Hours:" + hours + '\n')
    j.writelines("Rate:" + rate + '\n')
elif name == 'Tatiana':
    t.writelines("Date:" + date + '\n')
    t.writelines("Hours:" + hours + '\n')
    t.writelines("Rate:" + rate + '\n')
else:
    w.writelines("Date:" + date + '\n')
    w.writelines("Hours:" + hours + '\n')
    w.writelines("Rate:" + rate + '\n')

Да, очевидно, все можно хранить в формате json. И да, было бы здорово провести рефакторинг. В чем именно проблема? У вас есть какие-либо конкретные вопросы, или их следует опубликовать на freelancer.com или на бирже Code Review Stack Exchange?

Andrey Tyukin 01.04.2018 03:30

Сначала вы должны создать словарь, который хотите сохранить.

Klaus D. 01.04.2018 03:40
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
1 930
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот пример:

import json

def get_inputs():
    #user input to record the log
    name = input("Name:")
    d =  {}
    d['date'] = input('Enter a date in YYYY-MM-DD format:')
    d['hours'] = input("Hours:")
    return(name,d)

out = {}

while True:
    exit = input('Do you want to add another input (y/n)? ')
    if exit.lower() == 'n':
        break
    else:
        name, d = get_inputs()
        out[name] = d

with open('names.json','w') as f:
    json.dump(out, f, indent=2)

А потом:

import pandas as pd
print(pd.read_json('names.json'))

И у вас есть:

          Jessica
date   2014-12-01
hours          12

Другие вопросы по теме