{"id":20719,"date":"2025-07-07T05:18:00","date_gmt":"2025-07-07T05:18:00","guid":{"rendered":"https:\/\/educationalresearchtechniques.com\/?p=24895"},"modified":"2025-07-07T05:18:00","modified_gmt":"2025-07-07T05:18:00","slug":"bokeh-display-customization-in-python","status":"publish","type":"post","link":"https:\/\/python-bloggers.com\/2025\/07\/bokeh-display-customization-in-python\/","title":{"rendered":"Bokeh Display Customization in Python"},"content":{"rendered":"<div style=\\\"border: 1px solid; background: none repeat scroll 0 0 #EDEDED; margin: 1px; font-size: 12px;\\\">\r\n<i>This article was first published on  <strong>\r\n<a href=\"https:\/\/educationalresearchtechniques.com\/2025\/07\/07\/bokeh-display-customization-in-python\/\"> python \u2013 educational research techniques <\/a><\/strong>, and kindly contributed to <a href=\/about\/>python-bloggers<\/a>.  (You can report issue about the content on this page <a href=\/contact-us\/>here<\/a>)\r\n<br\/>Want to share your content on python-bloggers?<a href=\/add-your-blog\/> click here<\/a>.<\/i>\r\n<\/div>\n<p>In this post, we will examine how to modify the default display of a plot in Bokeh, a library for interactive data visualizations in Python. Below are the initial libraries that we need.<\/p>\n<pre>from pydataset import data\nfrom bokeh.plotting import figure\nfrom bokeh.io import output_file, show<\/pre>\n<p>The first line of code is where our data comes from. We are using the data() function from pydataset for loading our data. The next two lines are for making the plot&#8217;s figure (x and y axes) and for the output file. <\/p>\n<p><strong>Data Preparation<\/strong><\/p>\n<p>There is no data preparation beyond loading the dataset using the data() function. We pick the dataset &#8220;Duncan&#8221; and load it into an object called &#8220;df.&#8221; The code is below, followed by a brief view of the actual data using the .head() method.<\/p>\n<pre>df=data('Duncan')\ndf.head()<\/pre>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-133955.png?ssl=1\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"397\" height=\"223\" data-attachment-id=\"24909\" data-permalink=\"https:\/\/educationalresearchtechniques.com\/2025\/07\/07\/bokeh-display-customization-in-python\/screenshot-2024-10-03-133955\/\" data-orig-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-133955.png?fit=397%2C223&amp;ssl=1\" data-orig-size=\"397,223\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot 2024-10-03 133955\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-133955.png?fit=300%2C169&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-133955.png?fit=397%2C223&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-133955.png?resize=397%2C223&#038;ssl=1\" alt=\"\" class=\"wp-image-24909\" srcset=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-133955.png?w=397&amp;ssl=1 397w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-133955.png?resize=300%2C169&amp;ssl=1 300w\" sizes=\"(max-width: 397px) 100vw, 397px\" \/><\/a><\/figure>\n<p>This dataset includes various occupations measured in four ways: job type, income, education, and prestige.<\/p>\n<p><strong>Default Graph&#8217;s Appearance<\/strong><\/p>\n<p>Before we modify the appearance of the plot, it is important to know what the default appearance of the plot is for comparison purposes. Below is the code for a simple plot followed by the actual output and then lastly an explanation.<\/p>\n<pre># Create a new figure\nfig = figure(x_axis_label=\"Education\", y_axis_label=\"Income\")\n\n# Add circle glyphs\nfig.circle(x=df&#91;\"education\"], y=df&#91;\"income\"])\n\n# Call function to produce html file and display plot\noutput_file(filename=\"my_first_plot.html\")\nshow(fig)<\/pre>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?ssl=1\"><img loading=\"lazy\" data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"626\" data-attachment-id=\"24912\" data-permalink=\"https:\/\/educationalresearchtechniques.com\/2025\/07\/07\/bokeh-display-customization-in-python\/screenshot-2024-10-03-134447\/\" data-orig-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?fit=893%2C895&amp;ssl=1\" data-orig-size=\"893,895\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot 2024-10-03 134447\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?fit=300%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?fit=625%2C626&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?resize=625%2C626&#038;ssl=1\" alt=\"\" class=\"wp-image-24912\" srcset=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?w=893&amp;ssl=1 893w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?resize=768%2C770&amp;ssl=1 768w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?resize=600%2C600&amp;ssl=1 600w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?resize=400%2C400&amp;ssl=1 400w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?resize=200%2C200&amp;ssl=1 200w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-134447.png?resize=624%2C625&amp;ssl=1 624w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n<p>The first line of code sets up the fig or figure. We use the figure() function to label the axes which are education and income. The second line of code creates the actual data points in the figure using the .circle() method. The last two lines create the output and display it.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><a href=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2025\/07\/71G4UFC7MgL._AC_UY218_.jpg?ssl=1\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" data-recalc-dims=\"1\" decoding=\"async\" width=\"182\" height=\"218\" data-attachment-id=\"24961\" data-permalink=\"https:\/\/educationalresearchtechniques.com\/2025\/07\/07\/bokeh-display-customization-in-python\/71g4ufc7mgl-_ac_uy218_\/\" data-orig-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2025\/07\/71G4UFC7MgL._AC_UY218_.jpg?fit=182%2C218&amp;ssl=1\" data-orig-size=\"182,218\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"71G4UFC7MgL._AC_UY218_\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2025\/07\/71G4UFC7MgL._AC_UY218_.jpg?fit=182%2C218&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2025\/07\/71G4UFC7MgL._AC_UY218_.jpg?fit=182%2C218&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2025\/07\/71G4UFC7MgL._AC_UY218_.jpg?resize=182%2C218&#038;ssl=1\" alt=\"\" class=\"wp-image-24961\"\/><\/a><figcaption class=\"wp-element-caption\">ad<\/figcaption><\/figure>\n<\/div>\n<p>So the figure above is the default appearance of a graph. Below we will look at several modifications.<\/p>\n<p><strong>Modification 1<\/strong><\/p>\n<p>In the code below, we are making the following changes to the plot.<\/p>\n<ol class=\"wp-block-list\">\n<li>Identifying data points by job type using color<\/li>\n<li>Change the background color to black<\/li>\n<\/ol>\n<p>Below is the code followed by the output and the explanation<\/p>\n<pre># Import curdoc\nfrom bokeh.io import curdoc\n\nprof = df.loc&#91;df&#91;\"type\"] == \"prof\"]\nbc = df.loc&#91;df&#91;\"type\"] == \"bc\"]\n\n# Change theme to contrast\ncurdoc().theme = \"contrast\"\nfig = figure(x_axis_label=\"Education\", y_axis_label=\"Income\")\n\n# Add prof circle glyphs\nfig.circle(x=prof&#91;\"education\"], y=prof&#91;\"income\"], color=\"yellow\", legend_label=\"prof\",size=10)\n\n# Add bc circle glyphs\nfig.circle(x=bc&#91;\"education\"], y=bc&#91;\"income\"], color=\"red\", legend_label=\"bc\",size=10)\n\noutput_file(filename=\"prof_vs_bc.html\")\nshow(fig)<\/pre>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-140321.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"603\" data-attachment-id=\"24915\" data-permalink=\"https:\/\/educationalresearchtechniques.com\/2025\/07\/07\/bokeh-display-customization-in-python\/screenshot-2024-10-03-140321\/\" data-orig-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-140321.png?fit=614%2C603&amp;ssl=1\" data-orig-size=\"614,603\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot 2024-10-03 140321\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-140321.png?fit=300%2C295&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-140321.png?fit=614%2C603&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-140321.png?resize=614%2C603&#038;ssl=1\" alt=\"\" class=\"wp-image-24915\" srcset=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-140321.png?w=614&amp;ssl=1 614w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-140321.png?resize=300%2C295&amp;ssl=1 300w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/a><\/figure>\n<p>Here is what happened,<\/p>\n<ol class=\"wp-block-list\">\n<li>We load a library that allows us to modify the appearance called curdoc<\/li>\n<li>Next, we do some data preparation. Separating the data for types that are &#8220;prof&#8221; and those that are &#8220;bc&#8221; into separate objects.<\/li>\n<li>We change the theme of the plot to contrast using curdoc().theme<\/li>\n<li>We also created the figure as done previously <\/li>\n<li>We use the .circle() method twice. Once to set the &#8220;prof&#8221; data points on the plot and a second time to place the &#8220;bc&#8221; data points on the plot. We also make the data points larger by setting the size and using different colors for each job type.<\/li>\n<li>The last two lines of code are for creating the output and displaying it.<\/li>\n<\/ol>\n<p>You can see the difference between this second plot and the first one. This also shows the flexibility that is inherent in the use of Bokeh. Below we add one more variation to the display.<\/p>\n<p><strong>Modified Graph&#8217;s Appearance<\/strong><\/p>\n<p>The plot below is mostly the same except for the following<\/p>\n<ol class=\"wp-block-list\">\n<li>We add a third job type &#8220;wc&#8221;<\/li>\n<li>We modify the shapes of the data points<\/li>\n<\/ol>\n<p>Below is the code followed by the graph and the explanation<\/p>\n<pre># Create figure\nwc = df.loc&#91;df&#91;\"type\"] == \"wc\"]\nprof = df.loc&#91;df&#91;\"type\"] == \"prof\"]\nbc = df.loc&#91;df&#91;\"type\"] == \"bc\"]\n\nfig = figure(x_axis_label=\"Education\", y_axis_label=\"Income\")\n\n# Add circle glyphs for houses\nfig.circle(x=wc&#91;\"education\"], y=wc&#91;\"income\"], legend_label=\"wc\", color=\"purple\",size=10)\n\n# Add square glyphs for units\nfig.square(x=prof&#91;\"education\"], y=prof&#91;\"income\"], legend_label=\"prof\", color=\"red\",size=10)\n\n# Add triangle glyphs for townhouses\nfig.triangle(x=bc&#91;\"education\"], y=bc&#91;\"income\"], legend_label=\"bc\", color=\"green\",size=10)\n\noutput_file(filename=\"education_vs_income_by_type.html\")\nshow(fig)<\/pre>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-141546.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"601\" height=\"606\" data-attachment-id=\"24920\" data-permalink=\"https:\/\/educationalresearchtechniques.com\/2025\/07\/07\/bokeh-display-customization-in-python\/screenshot-2024-10-03-141546\/\" data-orig-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-141546.png?fit=601%2C606&amp;ssl=1\" data-orig-size=\"601,606\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot 2024-10-03 141546\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-141546.png?fit=298%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-141546.png?fit=601%2C606&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-141546.png?resize=601%2C606&#038;ssl=1\" alt=\"\" class=\"wp-image-24920\" srcset=\"https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-141546.png?w=601&amp;ssl=1 601w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-141546.png?resize=298%2C300&amp;ssl=1 298w, https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-141546.png?resize=150%2C150&amp;ssl=1 150w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><\/a><\/figure>\n<p>The code is almost all the same. The main difference is there are now three job types and each type has a different shape for their data points. The shapes are determined by using either .circle(), .triangle(), or .square() methods. <\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>There are many more ways to modify the appearance of visualization in bokeh. The goal here was to provide some basic examples that may lead to additional exploration.<\/p>\n\n<div style=\\\"border: 1px solid; background: none repeat scroll 0 0 #EDEDED; margin: 1px; font-size: 13px;\\\">\r\n<div style=\\\"text-align: center;\\\">To <strong>leave a comment<\/strong> for the author, please follow the link and comment on their blog: <strong><a href=\"https:\/\/educationalresearchtechniques.com\/2025\/07\/07\/bokeh-display-customization-in-python\/\"> python \u2013 educational research techniques <\/a><\/strong>.<\/div>\r\n<hr \/>\r\nWant to share your content on python-bloggers?<a href=\/add-your-blog\/ rel=\\\"nofollow\\\"> click here<\/a>.\r\n<\/div>","protected":false},"excerpt":{"rendered":"<div style = \"width: 60%; display: inline-block; float:left; \"> In this post, we will examine how to modify the default display of a plot in Bokeh, a library for interactive data visualizations in Python. Below are the initial libraries that we need. The first line of code is where our data comes from. We are using the data() function &#8230;<\/div>\n<div style = \"width: 40%; display: inline-block; float:right;\"><img id=\"excerpts_images\" src=' https:\/\/i0.wp.com\/educationalresearchtechniques.com\/wp-content\/uploads\/2024\/10\/Screenshot-2024-10-03-133955.png?resize=397%2C223&#038;ssl=1' width = \"200\"  style = \"padding: 10px;\" \/><\/div>\n<div style=\"clear: both;\"><\/div>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-20719","post","type-post","status-publish","format-standard","hentry","category-data-science"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/posts\/20719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/comments?post=20719"}],"version-history":[{"count":4,"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/posts\/20719\/revisions"}],"predecessor-version":[{"id":21044,"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/posts\/20719\/revisions\/21044"}],"wp:attachment":[{"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/media?parent=20719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/categories?post=20719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/python-bloggers.com\/wp-json\/wp\/v2\/tags?post=20719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}