Как создать функцию для записи в файлы (txt, csv, json)?

Пишу функцию для записи фаила json Файл создается, но пустой. код:

def write_file():
    with open('file_json.json', "w", encoding="utf-8") as file_json:
        file_json = create_randome_dict_json_file()
        data = json.dumps(file_json)
    return data
print(generate_and_write_file())

Ранее я сгенерировал: таблицу для записи в файл csv (create_random_list_csv()), словарь для записи в файл json (create_randome_dict_json_file()) строку для записи в файл txt (create_randome_txt_data()) Мне нужно написать функцию, например write_file которая принимает один параметр - полный путь к файлу. В зависимости от расширения файла (txt, csv, json) сгенерировать данные для записи и записать в данный файл. Если расширение не соответствует заданным, то вывести текст "Unsupported file format"

Вопрос: как его наполнить и может можно сделать все 1 функцией, для всех файлов?


Ответы (1 шт):

Автор решения: passant
  1. Вы документацию внимательно читали? json.dumps никоим образом не пишет в файл. А служит лишь для конвертации объекта Python в строку json.

Запись в json-файл выполняется методом json.dump:

with open("data_file.json", "w") as write_file:
    json.dump(data, write_file)

Ну а то, что file_json вы используете сначала как идентификатор объекта а потом вообще переопределяете непонятно как - это отдельный вопрос.

  1. Функцию, например write_file

Непонятно в чем вопрос. Объединить в одну функцию можно. Это функция должна псоледовательно делать следующее: Читать данные, парсить и проверяеть расширение. В зависимости от результата вызывать один из трех ваших генераторов и соответственно - одну из трех разных функций записи.

→ Ссылка