{"id":5754,"date":"2020-01-28T16:57:05","date_gmt":"2020-01-28T11:27:05","guid":{"rendered":"https:\/\/pynative.com\/?p=5754"},"modified":"2021-05-14T17:21:31","modified_gmt":"2021-05-14T11:51:31","slug":"python-convert-json-data-into-custom-python-object","status":"publish","type":"post","link":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/","title":{"rendered":"Python Convert JSON data Into a Custom Python Object"},"content":{"rendered":"\n<p>In this article, we will <strong>learn how to convert JSON data into a custom Python object<\/strong>. i.e., Parse and convert JSON into Python Class. For example, you receive employee JSON data from the API or you are reading JSON from a file and wanted to convert it into a custom Employee type.<\/p>\n\n\n\n<p>You know how to encode Python object into JSON. When you load JSON data from file or String using the <a href=\"https:\/\/pynative.com\/python-json-load-and-loads-to-parse-json\/\">json.load() and json.loads()<\/a>&nbsp;method, it returns a <code>dict<\/code>.<\/p>\n\n\n\n<p>If we load JSON data directly into our custom type we can manipulate and use it more effortlessly. There are various ways to achieve this. You can pick the way you find it more useful for your problem. Let&#8217;s see how to deserialize a JSON string to a custom Python object.<\/p>\n\n\n\n<div class=\"wp-block-columns has-background is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\" style=\"background-color:#deedf6\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>Further Reading<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Solve&nbsp;<a href=\"https:\/\/pynative.com\/python-json-exercise\/\">Python JSON Exercise<\/a>&nbsp;to practice Python JSON skills<\/li><\/ul>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image alignnone size-full wp-image-5784 is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"1134\" height=\"357\" src=\"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/convert_json_into_custom_python_object_explained.jpg\" alt=\"Explained how to Convert JSON into custom Python Object\" class=\"wp-image-5784\" srcset=\"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/convert_json_into_custom_python_object_explained.jpg 1134w, https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/convert_json_into_custom_python_object_explained-300x94.jpg 300w, https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/convert_json_into_custom_python_object_explained-1024x322.jpg 1024w, https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/convert_json_into_custom_python_object_explained-768x242.jpg 768w\" sizes=\"auto, (max-width: 1134px) 100vw, 1134px\" \/><figcaption>Explained how to Convert JSON into custom Python Object<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-using-namedtuple-and-object_hook-to-convert-json-data-into-a-custom-python-object\">Using namedtuple and object_hook to Convert JSON data Into a Custom Python Object<\/h2>\n\n\n\n<p>We can use the <strong><code>object_hook<\/code> <\/strong>parameter of the <code>json.loads()<\/code> and <code>json.load()<\/code> method. The <code>object_hook<\/code> is an optional function that will be called with the result of any object literal decoded (a dict). So when we execute <code>json.loads()<\/code>, The return value of <code>object_hook<\/code> will be used instead of the <code>dict<\/code>. Using this feature, we can implement custom decoders.<\/p>\n\n\n\n<p>To convert JSON into a custom Python type we need to follow the following:<\/p>\n\n\n\n<p>As we know <code>json.load()<\/code> and <code>json.loads()<\/code> method convert JSON into a <code>dict<\/code> object so we need to <strong>create a custom function<\/strong> where we can convert <code>dict<\/code> into a custom Python type. and pass this newly created function to an <strong><code>object_hook<\/code><\/strong> parameter of a <code>json.loads<\/code> method. so we can get custom type at the time of decoding JSON.<\/p>\n\n\n\n<p>The <strong>namedtuple<\/strong> is class, under the collections module. Like the dictionary type objects, it contains keys and that are mapped to some values. In this case, we can access the elements using keys and indexes.<\/p>\n\n\n\n<p>Let&#8217; see the simple example first then we can move to the practical example. In this example, we are converting Student JSON data into a custom Student Class type.<\/p>\n\n\n<div class=\"hljstoolbar\"><pre id=\"code1\"  class=\"wp-block-code language-python\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-keyword\">import<\/span> json\n<span class=\"hljs-keyword\">from<\/span> collections <span class=\"hljs-keyword\">import<\/span> namedtuple\n<span class=\"hljs-keyword\">from<\/span> json <span class=\"hljs-keyword\">import<\/span> JSONEncoder\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">customStudentDecoder<\/span><span class=\"hljs-params\">(studentDict)<\/span>:<\/span>\n    <span class=\"hljs-keyword\">return<\/span> namedtuple(<span class=\"hljs-string\">'X'<\/span>, studentDict.keys())(*studentDict.values())\n\n<span class=\"hljs-comment\">#Assume you received this JSON response<\/span>\nstudentJsonData = <span class=\"hljs-string\">'{\"rollNumber\": 1, \"name\": \"Emma\"}'<\/span>\n\n<span class=\"hljs-comment\"># Parse JSON into an object with attributes corresponding to dict keys.<\/span>\nstudent = json.loads(studentJsonData, object_hook=customStudentDecoder)\n\nprint(<span class=\"hljs-string\">\"After Converting JSON Data into Custom Python Object\"<\/span>)\nprint(student.rollNumber, student.name)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><button class=\"hljs-copy-button\" onclick=\"copy_code('code1', this);\"><i class=\"far fa-copy1\" aria-hidden=\"true\"><\/i><\/button><button class=\"hljs-run-button\" onclick=\"run_code('code1');\"><i class=\"far fa-play-circle\" aria-hidden=\"true\"><\/i> Run<\/button><\/div>\n\n\n<p><strong>Output<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">After Converting JSON Data into Custom Python Object\n1 Emma<\/pre>\n\n\n\n<p>As you can see we converted JSON data which was present in the JSON String format into a custom Python object Student. Now, we can access its members using a dot(.) operator.<\/p>\n\n\n\n<p>Now, let&#8217;s see the realtime scenario where work with complex Python Objects. And we need to <strong>convert custom Python object into JSON<\/strong>. Also, we want to <strong>construct a custom Python object from JSON<\/strong>.<\/p>\n\n\n\n<p>In this example, we are using two classes <code>Student<\/code> and <code>Marks<\/code>.&nbsp; A <code>Marks<\/code> class is a member of the <code>Student<\/code> class.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>First, we encode the Student class into JSON Data.<\/li><li>Then, we use the same JSON data to decode it into a Student class<\/li><\/ul>\n\n\n\n<p><b>Let&#8217; see the example now.<\/b><\/p>\n\n\n<div class=\"hljstoolbar\"><pre id=\"code2\"  class=\"wp-block-code language-python\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-keyword\">import<\/span> json\n<span class=\"hljs-keyword\">from<\/span> collections <span class=\"hljs-keyword\">import<\/span> namedtuple\n<span class=\"hljs-keyword\">from<\/span> json <span class=\"hljs-keyword\">import<\/span> JSONEncoder\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Student<\/span>:<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">__init__<\/span><span class=\"hljs-params\">(self, rollNumber, name, marks)<\/span>:<\/span>\n        self.rollNumber, self.name, self.marks = rollNumber, name, marks\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Marks<\/span>:<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">__init__<\/span><span class=\"hljs-params\">(self, english, geometry)<\/span>:<\/span>\n        self.english, self.geometry = english, geometry\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">StudentEncoder<\/span><span class=\"hljs-params\">(JSONEncoder)<\/span>:<\/span>\n        <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">default<\/span><span class=\"hljs-params\">(self, o)<\/span>:<\/span>\n            <span class=\"hljs-keyword\">return<\/span> o.__dict__\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">customStudentDecoder<\/span><span class=\"hljs-params\">(studentDict)<\/span>:<\/span>\n    <span class=\"hljs-keyword\">return<\/span> namedtuple(<span class=\"hljs-string\">'X'<\/span>, studentDict.keys())(*studentDict.values())\n\nmarks = Marks(<span class=\"hljs-number\">82<\/span>, <span class=\"hljs-number\">74<\/span>)\nstudent = Student(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">\"Emma\"<\/span>, marks)\n\n<span class=\"hljs-comment\"># dumps() produces JSON in native str format. if you want to writ it in file use dump()<\/span>\nstudentJson = json.dumps(student, indent=<span class=\"hljs-number\">4<\/span>, cls=StudentEncoder)\nprint(<span class=\"hljs-string\">\"Student JSON\"<\/span>)\nprint(studentJson)\n\n<span class=\"hljs-comment\"># Parse JSON into an object with attributes corresponding to dict keys.<\/span>\nstudObj = json.loads(studentJson, object_hook=customStudentDecoder)\n\nprint(<span class=\"hljs-string\">\"After Converting JSON Data into Custom Python Object\"<\/span>)\nprint(studObj.rollNumber, studObj.name, studObj.marks.english, studObj.marks.geometry)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><button class=\"hljs-copy-button\" onclick=\"copy_code('code2', this);\"><i class=\"far fa-copy1\" aria-hidden=\"true\"><\/i><\/button><button class=\"hljs-run-button\" onclick=\"run_code('code2');\"><i class=\"far fa-play-circle\" aria-hidden=\"true\"><\/i> Run<\/button><\/div>\n\n\n<p><strong>Output<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Student JSON\n{\n    \"rollNumber\": 1,\n    \"name\": \"Emma\",\n    \"marks\": {\n        \"english\": 82,\n        \"geometry\": 74\n    }\n}\nAfter Converting JSON Data into Custom Python Object\n1 Emma 82 74<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-using-types-simplenamespace-and-object_hook-to-convert-json-data-into-a-custom-python-object\">Using types.SimpleNamespace and object_hook&nbsp; to convert JSON data Into a Custom Python Object<\/h2>\n\n\n\n<p>We can use <code>types.SimpleNamespace<\/code> as the container for JSON objects. It offers the following advantages over a namedtuple solution: &#8211;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Its execution time is less because it does not create a class for each object.<\/li><li>It is precise and simplistic<\/li><\/ul>\n\n\n\n<p>In this example, we will use a <code>types.SimpleNamespace<\/code> and <code>object_hook<\/code> to convert JSON data into custom Python Object.<\/p>\n\n\n<div class=\"hljstoolbar\"><pre id=\"code3\"  class=\"wp-block-code language-python\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-keyword\">from<\/span> __future__ <span class=\"hljs-keyword\">import<\/span> print_function\n<span class=\"hljs-keyword\">import<\/span> json\n<span class=\"hljs-keyword\">from<\/span> json <span class=\"hljs-keyword\">import<\/span> JSONEncoder\n<span class=\"hljs-keyword\">try<\/span>:\n    <span class=\"hljs-keyword\">from<\/span> types <span class=\"hljs-keyword\">import<\/span> SimpleNamespace <span class=\"hljs-keyword\">as<\/span> Namespace\n<span class=\"hljs-keyword\">except<\/span> ImportError:\n    <span class=\"hljs-comment\"># Python 2.x fallback<\/span>\n    <span class=\"hljs-keyword\">from<\/span> argparse <span class=\"hljs-keyword\">import<\/span> Namespace\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Student<\/span>:<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">__init__<\/span><span class=\"hljs-params\">(self, rollNumber, name, marks)<\/span>:<\/span>\n        self.rollNumber, self.name, self.marks = rollNumber, name, marks\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Marks<\/span>:<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">__init__<\/span><span class=\"hljs-params\">(self, english, geometry)<\/span>:<\/span>\n        self.english, self.geometry = english, geometry\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">StudentEncoder<\/span><span class=\"hljs-params\">(JSONEncoder)<\/span>:<\/span>\n        <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">default<\/span><span class=\"hljs-params\">(self, o)<\/span>:<\/span> <span class=\"hljs-keyword\">return<\/span> o.__dict__\n\nmarks = Marks(<span class=\"hljs-number\">82<\/span>, <span class=\"hljs-number\">74<\/span>)\nstudent = Student(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">\"Emma\"<\/span>, marks)\n\n<span class=\"hljs-comment\"># dumps() produces JSON in native str format. if you want to writ it in file use dump()<\/span>\nstudentJsonData = json.dumps(student, indent=<span class=\"hljs-number\">4<\/span>, cls=StudentEncoder)\nprint(<span class=\"hljs-string\">\"Student JSON\"<\/span>)\nprint(studentJsonData)\n\n<span class=\"hljs-comment\"># Parse JSON into an custom Student object.<\/span>\nstudObj = json.loads(studentJsonData, object_hook=<span class=\"hljs-keyword\">lambda<\/span> d: Namespace(**d))\nprint(<span class=\"hljs-string\">\"After Converting JSON Data into Custom Python Object using SimpleNamespace\"<\/span>)\nprint(studObj.rollNumber, studObj.name, studObj.marks.english, studObj.marks.geometry)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><button class=\"hljs-copy-button\" onclick=\"copy_code('code3', this);\"><i class=\"far fa-copy1\" aria-hidden=\"true\"><\/i><\/button><button class=\"hljs-run-button\" onclick=\"run_code('code3');\"><i class=\"far fa-play-circle\" aria-hidden=\"true\"><\/i> Run<\/button><\/div>\n\n\n<p><strong>Output<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Student JSON\n{\n    \"rollNumber\": 1,\n    \"name\": \"Emma\",\n    \"marks\": {\n        \"english\": 82,\n        \"geometry\": 74\n    }\n}\nAfter Converting JSON Data into Custom Python Object using SimpleNamespace\n1 Emma 82 74<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-using-object-decoding-of-a-jsondecoder-class-to-convert-json-data-into-a-custom-python-object\">Using object decoding of a JSONDecoder class to convert JSON data Into a Custom Python Object<\/h2>\n\n\n\n<p>We can use the <code>json.JSONDecoder<\/code> class of json module to specialize JSON object decoding, here we can decode a JSON object into a custom Python type.<\/p>\n\n\n\n<p>We need to create a new function in a class that will be responsible for checking object type in JSON string, after getting the correct type in the JSON data we can construct our Object.<\/p>\n\n\n\n<p>Let&#8217; see the example.<\/p>\n\n\n<div class=\"hljstoolbar\"><pre id=\"code4\"  class=\"wp-block-code language-python\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-keyword\">import<\/span> json\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Student<\/span><span class=\"hljs-params\">(object)<\/span>:<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">__init__<\/span><span class=\"hljs-params\">(self, rollNumber, name, marks)<\/span>:<\/span>\n        self.rollNumber = rollNumber\n        self.name = name\n        self.marks = marks\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">studentDecoder<\/span><span class=\"hljs-params\">(obj)<\/span>:<\/span>\n    <span class=\"hljs-keyword\">if<\/span> <span class=\"hljs-string\">'__type__'<\/span> <span class=\"hljs-keyword\">in<\/span> obj <span class=\"hljs-keyword\">and<\/span> obj&#91;<span class=\"hljs-string\">'__type__'<\/span>] == <span class=\"hljs-string\">'Student'<\/span>:\n        <span class=\"hljs-keyword\">return<\/span> Student(obj&#91;<span class=\"hljs-string\">'rollNumber'<\/span>], obj&#91;<span class=\"hljs-string\">'name'<\/span>], obj&#91;<span class=\"hljs-string\">'marks'<\/span>])\n    <span class=\"hljs-keyword\">return<\/span> obj\n\nstudentObj = json.loads(<span class=\"hljs-string\">'{\"__type__\": \"Student\", \"rollNumber\":1, \"name\": \"Ault kelly\", \"marks\": 78}'<\/span>,\n           object_hook=studentDecoder)\n\nprint(<span class=\"hljs-string\">\"Type of decoded object from JSON Data\"<\/span>)\nprint(type(studentObj))\nprint(<span class=\"hljs-string\">\"Student Details\"<\/span>)\nprint(studentObj.rollNumber, studentObj.name, studentObj.marks)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><button class=\"hljs-copy-button\" onclick=\"copy_code('code4', this);\"><i class=\"far fa-copy1\" aria-hidden=\"true\"><\/i><\/button><button class=\"hljs-run-button\" onclick=\"run_code('code4');\"><i class=\"far fa-play-circle\" aria-hidden=\"true\"><\/i> Run<\/button><\/div>\n\n\n<p><strong>Output<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Type of decoded object from JSON Data\n&lt;class '__main__.Student'>\nStudent Details\n1 Ault kelly 78<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-use-jsonpickle-module-to-convert-json-data-into-a-custom-python-object\">Use jsonpickle module to convert JSON data into a custom Python Object<\/h2>\n\n\n\n<p>jsonpickle is a Python library designed to work with complex Python Objects. You can use jsonpickle for serialization and deserialization complex Python and JSON Data. You can refer to <a href=\"https:\/\/jsonpickle.github.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jsonpickle Documentation<\/a> for more detail.<\/p>\n\n\n\n<p>The built-in JSON module of Python can only handle Python primitives. For any custom Python object, we need to write our own JSONEncoder and Decoder.<\/p>\n\n\n\n<p>Using jsonpickle we will do the following: &#8211;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>First, we will encode Student Object into JSON using jsonpickle<\/li><li>Then we will decode Student JSON into Student Object<\/li><\/ul>\n\n\n\n<p>Now, let&#8217;s see the jsonpickle example to convert JSON data Into a Custom Python Object.<\/p>\n\n\n<div class=\"hljstoolbar\"><pre id=\"code5\"  id=\"norun\" class=\"wp-block-code language-python\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-keyword\">import<\/span> json\n<span class=\"hljs-keyword\">import<\/span> jsonpickle\n<span class=\"hljs-keyword\">from<\/span> json <span class=\"hljs-keyword\">import<\/span> JSONEncoder\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Student<\/span><span class=\"hljs-params\">(object)<\/span>:<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">__init__<\/span><span class=\"hljs-params\">(self, rollNumber, name, marks)<\/span>:<\/span>\n        self.rollNumber = rollNumber\n        self.name = name\n        self.marks = marks\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Marks<\/span><span class=\"hljs-params\">(object)<\/span>:<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">__init__<\/span><span class=\"hljs-params\">(self, english, geometry)<\/span>:<\/span>\n        self.english = english\n        self.geometry = geometry\n\nmarks = Marks(<span class=\"hljs-number\">82<\/span>, <span class=\"hljs-number\">74<\/span>)\nstudent = Student(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">\"Emma\"<\/span>, marks)\n\nprint(<span class=\"hljs-string\">\"Encode Object into JSON formatted Data using jsonpickle\"<\/span>)\nstudentJSON = jsonpickle.encode(student)\nprint(studentJSON)\n\nprint(<span class=\"hljs-string\">\"Decode and Convert JSON into Object using jsonpickle\"<\/span>)\nstudentObject = jsonpickle.decode(studentJSON)\nprint(<span class=\"hljs-string\">\"Object type is: \"<\/span>, type(studentObject))\n\nprint(<span class=\"hljs-string\">\"Student Details\"<\/span>)\nprint(studentObject.rollNumber, studentObject.name, studentObject.marks.english, studentObject.marks.geometry)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><button class=\"hljs-copy-button\" onclick=\"copy_code('code5', this);\"><i class=\"far fa-copy1\" aria-hidden=\"true\"><\/i><\/button><\/div>\n\n\n<p><strong>Output:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Encode Object into JSON formatted Data using jsonpickle\n{\"marks\": {\"english\": 82, \"geometry\": 74, \"py\/object\": \"__main__.Marks\"}, \"name\": \"Emma\", \"py\/object\": \"__main__.Student\", \"rollNumber\": 1}\nDecode JSON formatted Data using jsonpickle\n1 Emma 82 74<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-a-new-object-and-pass-the-result-dictionary-as-a-map-to-convert-json-data-into-a-custom-python-object\">Create a new Object, and pass the result dictionary as a map to convert JSON data into a custom Python Object<\/h2>\n\n\n\n<p>As we know <code>json.loads()<\/code> and <code>json.load()<\/code> method returns a <code>dict<\/code> object. we can construct a new custom object by passing the <code>dict<\/code> object as a parameter to the Student Object constructor. i.e., we can map the <code>dict<\/code> object to a custom object.<\/p>\n\n\n<div class=\"hljstoolbar\"><pre id=\"code6\"  class=\"wp-block-code language-python\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"Python\" data-shcb-language-slug=\"python\"><span><code class=\"hljs language-python\"><span class=\"hljs-keyword\">import<\/span> json\n<span class=\"hljs-keyword\">from<\/span> json <span class=\"hljs-keyword\">import<\/span> JSONEncoder\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Student<\/span><span class=\"hljs-params\">(object)<\/span>:<\/span>\n    <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">__init__<\/span><span class=\"hljs-params\">(self, rollNumber, name, *args, **kwargs)<\/span>:<\/span>\n        self.rollNumber = rollNumber\n        self.name = name\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">StudentEncoder<\/span><span class=\"hljs-params\">(JSONEncoder)<\/span>:<\/span>\n        <span class=\"hljs-function\"><span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title\">default<\/span><span class=\"hljs-params\">(self, o)<\/span>:<\/span>\n            <span class=\"hljs-keyword\">return<\/span> o.__dict__\n\nstudent = Student(<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-string\">\"Emma\"<\/span>)\n\n<span class=\"hljs-comment\"># encode Object it<\/span>\nstudentJson = json.dumps(student, cls=StudentEncoder, indent=<span class=\"hljs-number\">4<\/span>)\n\n<span class=\"hljs-comment\">#Deconde JSON<\/span>\nresultDict = json.loads(studentJson)\n\nprint(<span class=\"hljs-string\">\"Converting JSON into Python Object\"<\/span>)\nstudentObj = Student(**resultDict)\n\nprint(<span class=\"hljs-string\">\"Object type is: \"<\/span>, type(studentObj))\n\nprint(<span class=\"hljs-string\">\"Student Details\"<\/span>)\nprint(studentObj.rollNumber, studentObj.name)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Python<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">python<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><button class=\"hljs-copy-button\" onclick=\"copy_code('code6', this);\"><i class=\"far fa-copy1\" aria-hidden=\"true\"><\/i><\/button><button class=\"hljs-run-button\" onclick=\"run_code('code6');\"><i class=\"far fa-play-circle\" aria-hidden=\"true\"><\/i> Run<\/button><\/div>\n\n\n<p><strong>Output<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Converting JSON into Python Object\nObject type is:  &lt;class '__main__.Student'>\nStudent Details\n1 Emma<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-so-what-do-you-think\">So What Do You Think?<\/h2>\n\n\n\n<p>I want to hear from you. What do you think of this article? Or maybe I missed one of the ways to Convert JSON data Into a Custom Python Object. Either way, let me know by <strong>leaving a comment below<\/strong>.<\/p>\n\n\n\n<p>Also, try to solve the <a href=\"https:\/\/pynative.com\/python-json-exercise\/\">Python JSON Exercise<\/a> to have a better understanding of <a href=\"https:\/\/pynative.com\/python\/json\/\">Working with JSON Data in Python<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will learn how to convert JSON data into a custom Python object. i.e., Parse and convert JSON into Python Class. For example, you receive employee JSON data from the API or you are reading JSON from a file and wanted to convert it into a custom Employee type. You know how [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":5785,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[22,19],"tags":[29],"class_list":{"0":"post-5754","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-python","8":"category-json","9":"tag-python-json","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Python Convert JSON data Into a Custom Python Object &#8211; PYnative<\/title>\n<meta name=\"description\" content=\"Learn how to write a custom JSON Decoder to convert JSON into a custom Python object. Learn Use of jsonpickle to convert JSON into a custom Python Object\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Convert JSON data Into a Custom Python Object\" \/>\n<meta property=\"og:description\" content=\"Learn how to write a custom JSON Decoder to convert JSON into a custom Python object. Learn Use of jsonpickle to convert JSON into a custom Python Object\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/\" \/>\n<meta property=\"og:site_name\" content=\"PYnative\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-28T11:27:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-14T11:51:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/decode_json_into_custom_python_object.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"387\" \/>\n\t<meta property=\"og:image:height\" content=\"341\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Vishal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@PyNative\" \/>\n<meta name=\"twitter:site\" content=\"@PyNative\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vishal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/\"},\"author\":{\"name\":\"Vishal\",\"@id\":\"https:\\\/\\\/pynative.com\\\/#\\\/schema\\\/person\\\/64b55d5bde2265918c5a9931de4de71f\"},\"headline\":\"Python Convert JSON data Into a Custom Python Object\",\"datePublished\":\"2020-01-28T11:27:05+00:00\",\"dateModified\":\"2021-05-14T11:51:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/\"},\"wordCount\":866,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/#\\\/schema\\\/person\\\/64b55d5bde2265918c5a9931de4de71f\"},\"image\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pynative.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/decode_json_into_custom_python_object.jpg\",\"keywords\":[\"Python JSON\"],\"articleSection\":[\"Python\",\"Python JSON\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/\",\"url\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/\",\"name\":\"Python Convert JSON data Into a Custom Python Object &#8211; PYnative\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pynative.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/decode_json_into_custom_python_object.jpg\",\"datePublished\":\"2020-01-28T11:27:05+00:00\",\"dateModified\":\"2021-05-14T11:51:31+00:00\",\"description\":\"Learn how to write a custom JSON Decoder to convert JSON into a custom Python object. Learn Use of jsonpickle to convert JSON into a custom Python Object\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/#primaryimage\",\"url\":\"https:\\\/\\\/pynative.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/decode_json_into_custom_python_object.jpg\",\"contentUrl\":\"https:\\\/\\\/pynative.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/decode_json_into_custom_python_object.jpg\",\"width\":387,\"height\":341,\"caption\":\"Convert JSON into custom Python Object\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/pynative.com\\\/python-convert-json-data-into-custom-python-object\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/pynative.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\\\/\\\/pynative.com\\\/python\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"JSON\",\"item\":\"https:\\\/\\\/pynative.com\\\/python\\\/json\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Python Convert JSON data Into a Custom Python Object\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pynative.com\\\/#website\",\"url\":\"https:\\\/\\\/pynative.com\\\/\",\"name\":\"PYnative\",\"description\":\"Python Programming\",\"publisher\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/#\\\/schema\\\/person\\\/64b55d5bde2265918c5a9931de4de71f\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/pynative.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/pynative.com\\\/#\\\/schema\\\/person\\\/64b55d5bde2265918c5a9931de4de71f\",\"name\":\"Vishal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/pynative.com\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/vishalHule.jpg\",\"url\":\"https:\\\/\\\/pynative.com\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/vishalHule.jpg\",\"contentUrl\":\"https:\\\/\\\/pynative.com\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/vishalHule.jpg\",\"width\":968,\"height\":1065,\"caption\":\"Vishal\"},\"logo\":{\"@id\":\"https:\\\/\\\/pynative.com\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/vishalHule.jpg\"},\"description\":\"Founder of PYnative.com. I am a Python developer and I love to write articles to help developers. | All the best for your future Python endeavors!\",\"sameAs\":[\"https:\\\/\\\/pynative.com\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python Convert JSON data Into a Custom Python Object &#8211; PYnative","description":"Learn how to write a custom JSON Decoder to convert JSON into a custom Python object. Learn Use of jsonpickle to convert JSON into a custom Python Object","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/","og_locale":"en_US","og_type":"article","og_title":"Python Convert JSON data Into a Custom Python Object","og_description":"Learn how to write a custom JSON Decoder to convert JSON into a custom Python object. Learn Use of jsonpickle to convert JSON into a custom Python Object","og_url":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/","og_site_name":"PYnative","article_published_time":"2020-01-28T11:27:05+00:00","article_modified_time":"2021-05-14T11:51:31+00:00","og_image":[{"width":387,"height":341,"url":"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/decode_json_into_custom_python_object.jpg","type":"image\/jpeg"}],"author":"Vishal","twitter_card":"summary_large_image","twitter_creator":"@PyNative","twitter_site":"@PyNative","twitter_misc":{"Written by":"Vishal","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/#article","isPartOf":{"@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/"},"author":{"name":"Vishal","@id":"https:\/\/pynative.com\/#\/schema\/person\/64b55d5bde2265918c5a9931de4de71f"},"headline":"Python Convert JSON data Into a Custom Python Object","datePublished":"2020-01-28T11:27:05+00:00","dateModified":"2021-05-14T11:51:31+00:00","mainEntityOfPage":{"@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/"},"wordCount":866,"commentCount":6,"publisher":{"@id":"https:\/\/pynative.com\/#\/schema\/person\/64b55d5bde2265918c5a9931de4de71f"},"image":{"@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/#primaryimage"},"thumbnailUrl":"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/decode_json_into_custom_python_object.jpg","keywords":["Python JSON"],"articleSection":["Python","Python JSON"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/","url":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/","name":"Python Convert JSON data Into a Custom Python Object &#8211; PYnative","isPartOf":{"@id":"https:\/\/pynative.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/#primaryimage"},"image":{"@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/#primaryimage"},"thumbnailUrl":"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/decode_json_into_custom_python_object.jpg","datePublished":"2020-01-28T11:27:05+00:00","dateModified":"2021-05-14T11:51:31+00:00","description":"Learn how to write a custom JSON Decoder to convert JSON into a custom Python object. Learn Use of jsonpickle to convert JSON into a custom Python Object","breadcrumb":{"@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/#primaryimage","url":"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/decode_json_into_custom_python_object.jpg","contentUrl":"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/decode_json_into_custom_python_object.jpg","width":387,"height":341,"caption":"Convert JSON into custom Python Object"},{"@type":"BreadcrumbList","@id":"https:\/\/pynative.com\/python-convert-json-data-into-custom-python-object\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pynative.com\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/pynative.com\/python\/"},{"@type":"ListItem","position":3,"name":"JSON","item":"https:\/\/pynative.com\/python\/json\/"},{"@type":"ListItem","position":4,"name":"Python Convert JSON data Into a Custom Python Object"}]},{"@type":"WebSite","@id":"https:\/\/pynative.com\/#website","url":"https:\/\/pynative.com\/","name":"PYnative","description":"Python Programming","publisher":{"@id":"https:\/\/pynative.com\/#\/schema\/person\/64b55d5bde2265918c5a9931de4de71f"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pynative.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/pynative.com\/#\/schema\/person\/64b55d5bde2265918c5a9931de4de71f","name":"Vishal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pynative.com\/wp-content\/uploads\/2019\/01\/vishalHule.jpg","url":"https:\/\/pynative.com\/wp-content\/uploads\/2019\/01\/vishalHule.jpg","contentUrl":"https:\/\/pynative.com\/wp-content\/uploads\/2019\/01\/vishalHule.jpg","width":968,"height":1065,"caption":"Vishal"},"logo":{"@id":"https:\/\/pynative.com\/wp-content\/uploads\/2019\/01\/vishalHule.jpg"},"description":"Founder of PYnative.com. I am a Python developer and I love to write articles to help developers. | All the best for your future Python endeavors!","sameAs":["https:\/\/pynative.com"]}]}},"featured_image_src":"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/decode_json_into_custom_python_object.jpg","featured_image_src_square":"https:\/\/pynative.com\/wp-content\/uploads\/2020\/01\/decode_json_into_custom_python_object.jpg","author_info":{"display_name":"Vishal","author_link":"https:\/\/pynative.com\/author\/vishal\/"},"_links":{"self":[{"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/posts\/5754","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/comments?post=5754"}],"version-history":[{"count":0,"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/posts\/5754\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/media\/5785"}],"wp:attachment":[{"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/media?parent=5754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/categories?post=5754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pynative.com\/wp-json\/wp\/v2\/tags?post=5754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}