Чтобы преобразовать список в JSON в Python, вы можете использовать функцию json.dumps(). Эта функция принимает список в качестве аргумента и возвращает строку JSON. Например, если у вас есть список с именем main_list = [1, 2, 3], json.dumps() возвращает строку json [1, 2, 3].
|
1 2 3 4 5 |
import json data = ["DisneyPlus", "Netflix", "Peacock"] json_string = json.dumps(data) print(json_string) |
Выход
|
1 |
["DisneyPlus", "Netflix", "Peacock"] |
Вы можете видеть, что мы преобразовали строку json в список, используя метод dumps().
Как преобразовать список словарей в JSON
Вы можете использовать функцию json.dumps() для преобразования списка словарей в формат JSON. Эта функция сохраняет исходные данные и структуру списка словарей.
|
1 2 3 4 5 |
import json list_of_dicts = [{'kb':19, 'kl':21}, {'mbb':11, 'sm':18}] json_str = json.dumps(list_of_dicts) print(json_str) |
Выход
|
1 |
[{"kb": 19, "kl": 21}, {"mbb": 11, "sm": 18}] |
Вы можете видеть, что мы преобразовали список словарей в строку json без потери исходных данных.
Как преобразовать список списков в JSON
Вы можете использовать метод json.dumps() для преобразования списка списков в строку json в Python. Он принимает список списков в качестве аргумента и возвращает строку json без потери входных данных.
|
1 2 3 4 5 |
import json list_of_lists = [[19, 21], [11, 18], [46]] json_str = json.dumps(list_of_lists) print(json_str) |
Выход
|
1 |
[[19, 21], [11, 18], [46]] |
Как записать данные JSON в файл в Python
Чтобы записать данные json в файл, используйте функцию with open() в режиме «w», а затем используйте метод json.dump() для записи всего содержимого в файл.
Давайте реализуем программу для записи данных JSON в файл.
|
1 2 3 4 5 6 7 8 |
import json data = {"Eleven": "Millie", "Mike": "Finn", "Will": "Noah"} with open('app.json', 'w') as f: json.dump(data, f) |
Выход
В файле app.json у вас записаны данные json.
Если мы хотим получить кодировку utf8, то пишем следующий код.
|
1 2 3 4 5 6 7 8 |
import json data = {"Eleven": "Millie", "Mike": "Finn", "Will": "Noah"} with open('app.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4) |
В файл будет записан следующий вывод с отступом.
Выход
|
1 2 3 4 5 |
{ "Eleven": "Millie", "Mike": "Finn", "Will": "Noah" } |
Мы можем получить файл в кодировке utf8 вместо кодированного в ASCII, используя следующий код.
|
1 2 3 4 5 6 7 8 |
import json data = {"Eleven": "Millie", "Mike": "Finn", "Will": "Noah"} with open('app.json', 'w', encoding='utf-8') as f: f.write(json.dumps(data, ensure_ascii=False)) |
Выход
|
1 |
{"Eleven": "Millie", "Mike": "Finn", "Will": "Noah"} |
В Windows для открытия по-прежнему необходим аргумент encoding=’utf-8′.
Мы можем избежать хранения закодированной копии данных в памяти (результат дампов), а для вывода строк байтов в кодировке utf8 в Python 2 и 3 использовать следующий код.
|
1 2 3 4 |
import json, codecs with open('app.txt', 'wb') as f: json.dump(data, codecs.getwriter('utf-8')(f), ensure_ascii=False) |
Вызов функции codecs.getwriter() является избыточным в Python 3, но необходим для Python 2.
