Python variable in json

Python JSON

JSON is text, written with JavaScript object notation.

JSON in Python

Python has a built-in package called json , which can be used to work with JSON data.

Example

Parse JSON — Convert from JSON to Python

If you have a JSON string, you can parse it by using the json.loads() method.

Example

Convert from JSON to Python:

# the result is a Python dictionary:
print(y[«age»])

Convert from Python to JSON

If you have a Python object, you can convert it into a JSON string by using the json.dumps() method.

Example

Convert from Python to JSON:

# a Python object (dict):
x = «name»: «John»,
«age»: 30,
«city»: «New York»
>

# convert into JSON:
y = json.dumps(x)

# the result is a JSON string:
print(y)

You can convert Python objects of the following types, into JSON strings:

Example

Convert Python objects into JSON strings, and print the values:

print(json.dumps())
print(json.dumps([«apple», «bananas»]))
print(json.dumps((«apple», «bananas»)))
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))

When you convert from Python to JSON, Python objects are converted into the JSON (JavaScript) equivalent:

Python JSON
dict Object
list Array
tuple Array
str String
int Number
float Number
True true
False false
None null

Example

Convert a Python object containing all the legal data types:

Format the Result

The example above prints a JSON string, but it is not very easy to read, with no indentations and line breaks.

The json.dumps() method has parameters to make it easier to read the result:

Example

Use the indent parameter to define the numbers of indents:

You can also define the separators, default value is («, «, «: «), which means using a comma and a space to separate each object, and a colon and a space to separate keys from values:

Example

Use the separators parameter to change the default separator:

Order the Result

The json.dumps() method has parameters to order the keys in the result:

Example

Use the sort_keys parameter to specify if the result should be sorted or not:

Источник

Формат данных JSON в Python

JSON (JavaScript Object Notation) это легковесный формат обмена данными. Людям его легко читать и вести в нем записи, а компьютеры запросто справляются с его синтаксическим анализом и генерацией.

JSON основан на языке программирования JavaScript. Но этот текстовый формат не зависит от языка и среди прочих может использоваться в Python и Perl. В основном его применяют для передачи данных между сервером и веб-приложением.

JSON построен на двух структурах:

  • Набор пар «имя-значение». Они могут быть реализованы как объект, запись, словарь, хеш-таблица, список «ключей-значений» или ассоциативный массив.
  • Упорядоченный список значений. Его реализуют в виде массива, вектора, списка или последовательности.

JSON в Python

В Python есть ряд пакетов, поддерживающих JSON, в частности metamagic.json, jyson, simplejson, Yajl-Py, ultrajson, и json. В этом руководстве мы будем использовать json, имеющий «родную» поддержку в Python. Для проверки данных JSON мы можем воспользоваться этим сайтом, предоставляющим JSON-линтер.

Ниже приведен пример записи JSON. Как видим, представление данных очень похоже на словари Python.

Конвертируем JSON в объекты Python

Вышеуказанную JSON-строку мы можем спарсить при помощи метода json.loads() из модуля json . В итоге получим словарь Python.

import json my_json_string = """< "article": [ < "id":"01", "language": "JSON", "edition": "first", "author": "Derrick Mwiti" >, < "id":"02", "language": "Python", "edition": "second", "author": "Derrick Mwiti" >], "blog":[ < "name": "Datacamp", "URL":"datacamp.com" >] > """ to_python = json.loads(my_json_string)

Конвертируем объекты Python в JSON

Используя json.dumps() , мы можем сконвертировать объекты Python в формат JSON.

blog = to_json= json.dumps(blog)

Теперь давайте сравним типы данных в Python и JSON.

Python JSON
dict Object
list Array
tuple Array
str String
int Number
float Number
True true
False false
None null

Ниже мы покажем, как сконвертировать некоторые объекты Python в типы данных JSON.

Кортеж Python — в массив JSON

tuple_example = 'Mango', 'Banana', 'Apple' print(json.dumps(tuple_example))

Список Python — в массив JSON

list_example = ["Mango", 1, 3, 6, "Oranges"] print(json.dumps(list_example))

Строка Python — в строку JSON

string_example = "This is a cool example." print(json.dumps(string_example))

Булевы значения Python — в булевы значения JSON

boolean_value = False print(json.dumps(boolean_value))

Запись в файл JSON

Модуль json позволяет также записывать данные JSON в файл. Такие файлы сохраняют с расширением .json .

Давайте посмотрим, как это сделать. Для этого воспользуемся функцией open() с параметром w , сигнализирующим о том, что мы хотим записать в файл.

my_json_string = """< "article": [ < "id":"01", "language": "JSON", "edition": "first", "author": "Derrick Mwiti" >, < "id":"02", "language": "Python", "edition": "second", "author": "Derrick Mwiti" >], "blog":[ < "name": "Datacamp", "URL":"datacamp.com" >] > """ with open('test_file.json', 'w') as file: json.dump(my_json_string, file)

Чтение файлов JSON

Теперь продемонстрируем, как прочитать только что созданный нами файл JSON. Для его загрузки вызовем json.load() .

with open('test_file.json', 'r') as j: json_data = json.load(j) print(json_data)

json.load vs json.loads

json.load используют для загрузки файла, а json.loads – для загрузки строки (loads расшифровывается как «load string»).

json.dump vs json.dumps

Аналогично, json.dump применяется, если нужно сохранить JSON в файл, а json.dumps (dump string) – если данные JSON нам нужны в виде строки для парсинга или вывода.

Работа с данными JSON в Data Science

Иногда при работе над проектами, связанными с data science, требуется загрузить данные в формате JSON. Библиотека для анализа данных Pandas предоставляет для этого функцию .read_json . Как только данные загружены, мы конвертируем их в объект dataframe при помощи атрибута pandas.DataFrame .

import pandas as pd data = pd.read_json("https://api.github.com/users") df = pd.DataFrame(data)

Ограничения имплементации

Процесс кодирования в JSON называется сериализацией, а декодирования – десериализацией. Некоторые реализации десериализаторов имеют ограничения на:

  • размер принимаемых текстов JSON
  • максимальный уровень вложенности объектов и массивов JSON
  • диапазон точности чисел JSON
  • содержание и максимальную длину строк JSON.

Впрочем, подобные ограничения связаны только с типами данных Python и работой самого интерпретатора Python.

Формат JSON в разработке API

Одно из важнейших применений JSON – для разработки API в веб-приложениях. Этот формат очень полезен, ведь позволяет коллегам-разработчикам строить систему на основе наших API, используя любой язык, поддерживающий JSON. А такой поддержкой обладают практически все современные языки. На простом примере покажем, как вернуть JSON при разработке приложения на Python с фреймворком Flask. Flask предоставляет для этого модуль jsonify .

from flask import jsonify @app.route('/_get_current_user') def get_current_user(): return jsonify(username=g.user.username, email=g.user.email, > Эта программа отправит в браузер что-то вроде следующего:

Заключение

В этом уроке мы сделали небольшое введение в особенности работы с JSON в Python. Рассмотрели использование различных методов из модуля json, таких как json.load и json.dumps . Кроме того, мы разобрали, как загрузить данные в формате JSON для работы в проектах data science и как возвращать JSON при разработке API. Узнать больше о модуле json можно на его официальной странице на сайте Python.

Источник

Читайте также:  Html css social button
Оцените статью