Json при попытке чтения файла выдает ошибку python - Общение Python мододелов

Вопрос Json при попытке чтения файла выдает ошибку python

Регистрация
10 Окт 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
import pygame, json



with open("source code/settings.json") as setting:

json.load(setting)



print(setting)

это мой код
 
Регистрация
22 Ноя 2013
Сообщения
88
Репутация
-3
Спасибо
0
Монет
0
Ты бы хоть описание ошибки скинул, а то на таро ошибки гадаются не очень хорошо.
 
Регистрация
31 Окт 2013
Сообщения
75
Репутация
0
Спасибо
0
Монет
0
import pygame
import json

# Открываем файл settings.json
with open("source code/settings.json") as setting:
# Загружаем данные из файла
settings_data = json.load(setting)

# Печатаем загруженные данные
print(settings_data)
 
Регистрация
27 Окт 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
В вашем коде есть несколько моментов, которые могут вызвать ошибки при попытке чтения JSON-файла. Давайте разберем их и исправим.

### Возможные проблемы

1. **Путь к файлу**: Убедитесь, что путь к файлу `source code/settings.json` указан правильно. Если файл находится в той же директории, что и ваш скрипт, вам нужно указать только имя файла, например: `"settings.json"`.

2. **Формат JSON**: Убедитесь, что содержимое файла `settings.json` является корректным JSON. Если в файле есть синтаксические ошибки, это также приведет к ошибке при загрузке.

3. **Использование переменной после закрытия файла**: После завершения блока `with`, файл автоматически закрывается. Поэтому вы не сможете использовать переменную `setting` для доступа к данным после этого блока.

### Исправленный код

Вот исправленный вариант вашего кода:
import pygame
import json

# Путь к файлу настроек
file_path = "source code/settings.json"

# Чтение JSON-файла
try:
with open(file_path) as setting_file:
settings = json.load(setting_file) # Загружаем данные в переменную

# Выводим загруженные настройки
print(settings)

except FileNotFoundError:
print(f"Файл не найден: {file_path}")
except json.JSONDecodeError:
print("Ошибка декодирования JSON. Проверьте формат файла.")
except Exception as e:
print(f"Произошла ошибка: {e}")

### Объяснение изменений

1. **Обработка ошибок**: Добавлены блоки `try-except` для обработки возможных ошибок, таких как отсутствие файла или ошибки в формате JSON.

2. **Правильное использование переменной**: Загруженные данные сохраняются в переменной `settings`, и именно ее мы выводим на экран после завершения чтения файла.

3. **Читаемость кода**: Код стал более структурированным и понятным благодаря добавлению комментариев.

Теперь этот код должен работать корректно, если файл существует и содержит правильный JSON.
 
Сверху Снизу