як перетворити json на словник python? [Дублікат]
@EzikBro мабуть я щось роблю не так, але задаючи змінну index = json.loads(index_real), де index_real - json об'єкт, я отримав помилку TypeError:
@MaxZhukov Якщо у вас вже є JSON об'єкт, то його не треба вантажити, він уже є. Звідки ви його взяли?
@CrazyElf я отримав дані через Google API: index_real = service.spreadsheets().values().get( spreadsheetId=spreadsheet_id, range='B2:B', majorDimension='ROWS' ).execute()
@MaxZhukov, судячи з помилки з коментаря ви намагаєтеся передати json.loads() словник як аргумент для того, щоб перетворити вже словник у словник? ;) Таким чином рішенням буде: result = index_real :-D
№23 Модуль JSON / Уроки з Python для початківців
JSON є синтаксисом для зберігання та обміну даними. JSON – це текст, написаний у стилі об'єкта JavaScript.
JSON в Python
Python має вбудований модуль json, який може використовуватися для роботи з даними JSON.
Конвертація з JSON в Python
Якщо ви маєте рядок JSON, ви можете провести над ним парсинг за допомогою методу json.loads () .
Як результат, буде словник python.
Конвертуємо з JSON в Python:
import json # трохи JSON: x =
''
# Парсинг x: y = json.loads(x)
# результатом буде словник Python:
print(y["age"])
Конвертувати з Python у JSON
Якщо у вас є об'єкт Python, ви можете перетворити його на рядок JSON за допомогою методу json.dumps() .
import json # створюємо словник x: x =
"name":
"Viktor",
"age":
30,
"City":
"Minsk"
>
# конвертуємо в JSON: y = json.dumps(x)
# в результаті отримуємо рядків JSON:
print(y)
Ви можете перетворити наступні типи об'єктів Python в рядки JSON:
Конвертуємо об'єкти Python у рядки JSON і виведіть значення:
import json print(json.dumps("name":
"Viktor",
"age":
30>))
print(json.dumps(["Porsche",
"BMW"]))
print(json.dumps(("Porsche",
"BMW")))
print(json.dumps("hello"))
print(json.dumps(42))
print(json.dumps(31.76))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))
["Porsche", "BMW"] ["Porsche", "BMW"] "hello" 42 31.76 true false null
Коли ви конвертуєте з Python у JSON, об'єкти Python перетворюються на еквівалент JSON:
| Python | JSON |
|---|
| dict | Object |
| list | Array |
| tuple | Array |
| str | String |
| int | Номер |
| float | Номер |
| True | true |
| False | false |
| None | null |
Конвертуйте об'єкт Python, який містить усі типи конвертованих даних:
import json x =
"name":
"Viktor",
"age":
30,
"Married":
True,
"divorced":
False,
"children":
("Anna","Bogdan"),
"pets":
None,
"cars":
[
"model":
"BMW 230",
"mpg":
27.5>,
"model":
"Ford Edge",
"mpg":
24.1>
]
>
print(json.dumps(x))
Як конвертувати кирилицю
Якщо в Python є символи кирилиці, метод json.dumps() перетворює їх з кодуванням за замовчуванням. Щоб зберегти кирилицю, використовуйте параметр ensure_ascii=False
import json x =
"name":
"Віктор"
> y =
"name":
"Віктор"
>
print(json.dumps(x))
print(json.dumps(y, ensure_ascii=False))
Форматування результату
У наведеному вище прикладі виводиться рядок JSON, але читати його не так просто, без відступів та переносів рядків.
Метод json.dumps() має параметри, що полегшують читання результату.
Використовуємо параметр indent для визначення кількості відступів:
json.dumps(x, indent=4)
Ви також можете визначити роздільники, значення яких за замовчуванням - , , : , де кома і пробіл використовуються для поділу кожного об'єкта, а двокрапка і пробіл - для розділення ключів та значень.
Використовуємо параметр separators щоб змінити роздільник за замовчуванням:
json.dumps(x, indent=4, separators=(". ",
"token punctuation">))
Упорядкування результату
Метод json.dumps() має параметри для впорядкування ключів у результаті.
Використовуємо параметр sort_keys, щоб вказати, чи повинен сортуватися результат.
json.dumps(x, indent=4, sort_keys=True)
Перетворення JSON на словник з використанням Python
Звичайно, я можу написати розгорнуту відповідь на ваше питання про перетворення JSON на словник Python.
JSON (JavaScript Object Notation) є зручним форматом обміну даними, який широко використовується у веб-додатках. Python має вбудовану бібліотеку json , яка дозволяє працювати з JSON даними.
Для перетворення JSON на словник Python можна використовувати метод loads() з модуля json . Цей метод розбирає рядок JSON і повертає об'єкт типу dict . Нижче наведено приклад коду:
import json json_str = '' # Перетворення JSON на словник data = json.loads(json_str) # Висновок словника print(data)
У цьому прикладі ми маємо JSON рядок: . Ми передаємо цей рядок у метод loads() для перетворення на словник. Потім ми виводимо отриманий словник.
Як видно з прикладу, метод loads() перетворив JSON рядок на словник Python. Створений словник має таку структуру, як і вихідний JSON об'єкт. Ключі словника відповідають ключам з об'єкта JSON, а значення словника відповідають значенням з об'єкта JSON.
Тепер давайте розглянемо трохи складніший приклад, коли JSON містить вкладені об'єкти:
import json json_str = '>' # Перетворення JSON на словник data = json.loads(json_str) # Висновок словника print(data)
JSON рядок у цьому прикладі містить вкладений об'єкт "address". Ми також передаємо цей рядок у метод loads() для перетворення JSON на словник. Потім ми виводимо отриманий словник.
Як видно з прикладу, вкладений об'єкт address був успішно перетворений на словник Python. Вкладені об'єкти в JSON розбираються у вигляді вкладених словників.
Також варто зазначити, що якщо в JSON є масиви, вони будуть перетворені на список Python, а не на словник.
Підсумовуючи, для перетворення JSON на словник Python необхідно використовувати метод loads() з модуля json . Це дозволяє зручно працювати з JSON даними та використовувати їх у програмі.