Не могу считать с фаила json данные
Мне необходимо написать функцию, которая считает эти данные из файла. Параметр функции - имя файла. Я делаю следующее:
def open_json_data("data.json"):
with open("data.json", "r", encoding="utf-8") as json_file:
new_data = json.load(json_file)
return new_data
dict_list = open_json_data()
В итоге выдает ошибку:
def open_json_data("data.json"):
^
SyntaxError: invalid syntax
Часть кода в фаиле json:
[
{"name": "Alhazen",
"years": "c. 965 – c. 1040"
{"name": "Archimedes",
"years": "c. 287 BC – 212 BC."}
]
В чем может быть проблема?
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
Идея использования параметров функции в том, чтобы можно было вызывать одну функцию с разными значениями параметров. Вы же жестко закодировали единственное имя файла. Сделайте лучше так:
def open_json_data(filename="data.json", encoding="utf-8"):
with open(filename, "r", encoding=encoding) as json_file:
new_data = json.load(json_file)
return new_data
PS причина SyntaxError в том, что вместо имени параметра функции вы используете константную строку (литерал).
Автор решения: DarkPyDeu
→ Ссылка
Если код надо будет часто редактировать или много где открывать файл, делайте так:
def open_json_data(file):
with open(file, "r", encoding="utf-8") as json_file:
new_data = json.load(json_file)
return new_data
и вызывать функцию так:
open_json_data("data.json")