From f5ee4e207a693ff409f83cb608215eb97979fe1e Mon Sep 17 00:00:00 2001 From: Sam Clift Date: Wed, 14 Jan 2015 15:09:50 +0000 Subject: [PATCH 1/4] Improvements to the JSON section Thanks to https://github.com/mplewis --- docs/scenarios/json.rst | 113 ++++++++++++---------------------------- 1 file changed, 33 insertions(+), 80 deletions(-) diff --git a/docs/scenarios/json.rst b/docs/scenarios/json.rst index 3683eec..8a6e492 100644 --- a/docs/scenarios/json.rst +++ b/docs/scenarios/json.rst @@ -1,33 +1,39 @@ -JSON parsing +JSON =========== -json ------ +The `json `_ library can read JSON strings into a Python dictionary or array. It can also serialize Python dictionaries or arrays into JSON strings. -`json `_ is a standard libary which can convert JSON to a Dictionay. +* There are six basic types in JSON: objects, arrays, numbers, strings, booleans, and null. +* The root element of JSON representation is an object, signified by ``{ ... }``. JSON objects are analogous to Python dictionaries: they have keys which correspond to values. +* JSON does not use single quotes. JSON exclusively uses double quotes. Using single quotes in the place of double quotes is invalid JSON syntax. -For example, a JSON string like this: - -.. code-block:: python - - "{'first_name':'Guido','last_name':'Rossum'}" - -can be loaded like this: +Parsing JSON +------------ +The `json `_ libary is imported like this: .. code-block:: python import json + +Take the following string containing JSON data: + +.. code-block:: python + + json_string = '{"first_name": "Guido", "last_name":"Rossum"}' + +It can be manpulated like this: + +.. code-block:: python + converted_dict = json.loads(json_string) -you can now use it as a normal dictionary: +and can now be used as a normal dictionary: .. code-block:: python converted_dict['first_name'] -As well as converting a JSON string to a dictionary. You can convert a dictionary to JSON - -For example, given: +As well as converting a JSON string to a dictionary. You can convert a dictionary to JSON: .. code-block:: python @@ -36,25 +42,24 @@ For example, given: 'second_name': 'Rossum' } - import json - print json.dumps(d) + print(json.dumps(d)) "{'first_name':'Guido','last_name':'Rossum'}" -It is also possible to import JSON files: +We can also load a JSON file by using ``json.load`` instead of ``json.loads``: .. code-block:: python - import json with file('path/to/file.json') as json_file: processed_json = json.load(json_file) - print processsed_json + + print(processsed_json) {u'first_name': u'Guido', u'last_name': u'Rossum'} -As well as write to them: + +Here's an example of writing directly to a file by using ``json.dump`` instead of ``json.dumps``: .. code-block:: python - import json with file('path/to/file.json', 'w') as json_file: dict = { "first_name": "Guido", @@ -65,6 +70,9 @@ As well as write to them: simplejson ---------- +`simplejson `_ is the externally maintained development version of the json library. + +simplejson mimics the json standard library, so you can start using simplejson instead of json by importing it under a different name Installation @@ -72,67 +80,12 @@ Installation pip install simplejson -`simplejson `_ is the externally maintained development version of the json library. - -simplejson is updated much more frequently than the Python. Meaning you can get updates much quicker. - -For example, a JSON string like this: +Usage .. code-block:: python - "{'first_name':'Guido','last_name':'Rossum'}" + import simplejson as json -can be loaded like this: - -.. code-block:: python - - import simplejson - converted_dict = simplejson.loads(json_string) - -you can now use it as a normal dictionary: - -.. code-block:: python - - converted_dict['first_name'] - -As well as converting a json string to dictionarys. You can convert dictionarys to json - -For example, given: - -.. code-block:: python - - import simplejson - - d = { - 'first_name': 'Guido', - 'second_name': 'Rossum' - } - print simplejson.dumps(d) - "{'first_name':'Guido','last_name':'Rossum'}" +simplejson is available so that developers that use an older version of python can use the latest features available in the json lib. -It is also possible to import JSON files: - -.. code-block:: python - - import simplejson - - with file('path/to/file.json') as json_file: - processed_json = simplejson.load(json_file) - print processsed_json - {u'first_name': u'Guido', u'last_name': u'Rossum'} - -As well as write to them: - -.. code-block:: python - - import simplejson - - with file('path/to/file.json', 'w') as json_file: - dict = { - "first_name": "Guido", - "last_name": "Rossum", - "middle_name": "Van" - } - simplejson.dump(dict, json_file) - From 332fdcd6f184bceb7037c1fa0933fe982dc1eae4 Mon Sep 17 00:00:00 2001 From: Sam Clift Date: Wed, 14 Jan 2015 15:19:24 +0000 Subject: [PATCH 2/4] arrays to lists --- docs/scenarios/json.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/scenarios/json.rst b/docs/scenarios/json.rst index 8a6e492..c585731 100644 --- a/docs/scenarios/json.rst +++ b/docs/scenarios/json.rst @@ -1,9 +1,9 @@ JSON =========== -The `json `_ library can read JSON strings into a Python dictionary or array. It can also serialize Python dictionaries or arrays into JSON strings. +The `json `_ library can read JSON strings into a Python dictionary or list. It can also serialize Python dictionaries or lists into JSON strings. -* There are six basic types in JSON: objects, arrays, numbers, strings, booleans, and null. +* There are six basic types in JSON: objects, lists, numbers, strings, booleans, and null. * The root element of JSON representation is an object, signified by ``{ ... }``. JSON objects are analogous to Python dictionaries: they have keys which correspond to values. * JSON does not use single quotes. JSON exclusively uses double quotes. Using single quotes in the place of double quotes is invalid JSON syntax. From 37ed5fc40a75b60d2d3cb9f4e8f11ce6a7f32d96 Mon Sep 17 00:00:00 2001 From: Sam Clift Date: Sun, 18 Jan 2015 14:22:30 +0000 Subject: [PATCH 3/4] update based on PR feedback --- docs/scenarios/json.rst | 59 +++++++---------------------------------- 1 file changed, 10 insertions(+), 49 deletions(-) diff --git a/docs/scenarios/json.rst b/docs/scenarios/json.rst index c585731..29d87c4 100644 --- a/docs/scenarios/json.rst +++ b/docs/scenarios/json.rst @@ -1,15 +1,12 @@ JSON -=========== +==== -The `json `_ library can read JSON strings into a Python dictionary or list. It can also serialize Python dictionaries or lists into JSON strings. - -* There are six basic types in JSON: objects, lists, numbers, strings, booleans, and null. -* The root element of JSON representation is an object, signified by ``{ ... }``. JSON objects are analogous to Python dictionaries: they have keys which correspond to values. -* JSON does not use single quotes. JSON exclusively uses double quotes. Using single quotes in the place of double quotes is invalid JSON syntax. +The `json `_ library can parse JSON from strings or files. When parsing, the library converts the JSON into a Python dictionary or list. It can also parse Python dictionaries or lists into JSON strings. Parsing JSON ------------ -The `json `_ libary is imported like this: + +The json libary is imported like this: .. code-block:: python @@ -21,7 +18,7 @@ Take the following string containing JSON data: json_string = '{"first_name": "Guido", "last_name":"Rossum"}' -It can be manpulated like this: +It can be parsed like this: .. code-block:: python @@ -31,9 +28,10 @@ and can now be used as a normal dictionary: .. code-block:: python - converted_dict['first_name'] + print(converted_dict['first_name']) + "Guido" -As well as converting a JSON string to a dictionary. You can convert a dictionary to JSON: +You can also convert a dictionary to JSON: .. code-block:: python @@ -45,47 +43,10 @@ As well as converting a JSON string to a dictionary. You can convert a dictionar print(json.dumps(d)) "{'first_name':'Guido','last_name':'Rossum'}" -We can also load a JSON file by using ``json.load`` instead of ``json.loads``: - -.. code-block:: python - - with file('path/to/file.json') as json_file: - processed_json = json.load(json_file) - - print(processsed_json) - {u'first_name': u'Guido', u'last_name': u'Rossum'} - - -Here's an example of writing directly to a file by using ``json.dump`` instead of ``json.dumps``: - -.. code-block:: python - - with file('path/to/file.json', 'w') as json_file: - dict = { - "first_name": "Guido", - "last_name": "Rossum", - "middle_name": "Van" - } - json.dump(dict, json_file) simplejson ---------- + `simplejson `_ is the externally maintained development version of the json library. -simplejson mimics the json standard library, so you can start using simplejson instead of json by importing it under a different name - -Installation - -.. code-block:: python - - pip install simplejson - -Usage - -.. code-block:: python - - import simplejson as json - -simplejson is available so that developers that use an older version of python can use the latest features available in the json lib. - - +simplejson mimics the json standard library, it is available so that developers that use an older version of python can use the latest features available in the json lib. From f1e196a73f3cef46af504b4b5705a60327df6949 Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Sun, 18 Jan 2015 09:58:33 -0600 Subject: [PATCH 4/4] Commit last few necessary edits These were all previously ignored in the last two pull requests. --- docs/scenarios/json.rst | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/docs/scenarios/json.rst b/docs/scenarios/json.rst index 29d87c4..a3f7ffa 100644 --- a/docs/scenarios/json.rst +++ b/docs/scenarios/json.rst @@ -6,12 +6,6 @@ The `json `_ library can parse JSON Parsing JSON ------------ -The json libary is imported like this: - -.. code-block:: python - - import json - Take the following string containing JSON data: .. code-block:: python @@ -22,26 +16,28 @@ It can be parsed like this: .. code-block:: python - converted_dict = json.loads(json_string) + import json + parsed_json = json.loads(json_string) and can now be used as a normal dictionary: .. code-block:: python - print(converted_dict['first_name']) + print(parsed_json['first_name']) "Guido" -You can also convert a dictionary to JSON: +You can also convert a the following to JSON: .. code-block:: python d = { 'first_name': 'Guido', - 'second_name': 'Rossum' + 'second_name': 'Rossum', + 'titles': ['BDFL', 'Developer'], } print(json.dumps(d)) - "{'first_name':'Guido','last_name':'Rossum'}" + '{"first_name": "Guido", "last_name": "Rossum", "titles": ["BDFL", "Developer"]}' simplejson