{"id":82848,"date":"2021-07-06T12:57:32","date_gmt":"2021-07-06T07:27:32","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=82848"},"modified":"2026-06-03T16:00:03","modified_gmt":"2026-06-03T10:30:03","slug":"python-to-do-list","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/","title":{"rendered":"Create a To Do List in Python"},"content":{"rendered":"<p>In this Python project, we will build a GUI-based To Do List using the Tkinter module and File I\/O. It is a beginner-level python project, and you should have basic knowledge of file I\/O and Tkinter module before you begin and you will be able to apply them in real life. Let\u2019s get started!<\/p>\n<h3>About To-Do Lists<\/h3>\n<p>To-Do Lists are actually a list of your daily tasks that you keep on your person to remind yourself of the tasks you have to accomplish that day. In this project, we are going to make a GUI based python to-do list with options to add and delete items in your list.<\/p>\n<h3>Python To Do List Project<\/h3>\n<p>The objective of this python project is to create a To-Do List. To build this, you will need a little understanding of File I\/O and the Tkinter module.<\/p>\n<h3>Project Prerequisites:<\/h3>\n<p>To build python to-do list project, we will only need the <strong>Tkinter<\/strong> module to create the GUI, which comes pre-installed with Python.<\/p>\n<h3>Download To Do Python Project Code<\/h3>\n<p>Please download the source code of python to-do list Project: <a href=\"https:\/\/drive.google.com\/file\/d\/19lL4lYcCzSK0LIa502vH7GQ8l4d7YFf1\/view?usp=drive_link\"><strong>To Do List Python Code<\/strong><\/a><\/p>\n<h3>To Do List Python Project File Structure:<\/h3>\n<p>The files required in to-do list project are:<\/p>\n<ul>\n<li><strong>tasks.txt<\/strong> &#8211; The text file where all our tasks will be stored<\/li>\n<li><strong>main.py<\/strong> &#8211; The python script file<\/li>\n<\/ul>\n<p>Here are the steps you will need to execute to build this python project:<\/p>\n<ol>\n<li>Importing all the necessary libraries<\/li>\n<li>Initializing the window and placing all the components in it<\/li>\n<li>Creating the add_item and delete_item functions<\/li>\n<\/ol>\n<p>Let\u2019s take a closer look at these steps:<\/p>\n<h4>1. Importing the library:<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Importing all the necessary modules\r\nfrom tkinter import *<\/pre>\n<h4>2. Initializing the window and placing all the components in it:<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Initializing the python to do list GUI window\r\nroot = Tk()\r\nroot.title('TechVidvan To-Do List')\r\nroot.geometry('300x400')\r\nroot.resizable(0, 0)\r\nroot.config(bg=\"PaleVioletRed\")\r\n\r\n# Heading Label\r\nLabel(root, text='TechVidvan Python To Do List', bg='PaleVioletRed', font=(\"Comic Sans MS\", 15), wraplength=300).place(x=35, y=0)\r\n\r\n# Listbox with all the tasks with a Scrollbar\r\ntasks = Listbox(root, selectbackground='Gold', bg='Silver', font=('Helvetica', 12), height=12, width=25)\r\n\r\nscroller = Scrollbar(root, orient=VERTICAL, command=tasks.yview)\r\nscroller.place(x=260, y=50, height=232)\r\n\r\ntasks.config(yscrollcommand=scroller.set)\r\n\r\ntasks.place(x=35, y=50)\r\n\r\n# Adding items to the Listbox\r\nwith open('tasks.txt', 'r+') as tasks_list:\r\n    for task in tasks_list:\r\n        tasks.insert(END, task)\r\n    tasks_list.close()\r\n\r\n# Creating the Entry widget where the user can enter a new item\r\nnew_item_entry = Entry(root, width=37)\r\nnew_item_entry.place(x=35, y=310)\r\n\r\n# Creating the Buttons\r\nadd_btn = Button(root, text='Add Item', bg='Azure', width=10, font=('Helvetica', 12),\r\n                 command=lambda: add_item(new_item_entry, tasks))\r\nadd_btn.place(x=45, y=350)\r\n\r\ndelete_btn = Button(root, text='Delete Item', bg='Azure', width=10, font=('Helvetica', 12),\r\n                 command=lambda: delete_item(tasks))\r\ndelete_btn.place(x=150, y=350)\r\n\r\n# Finalizing the window\r\nroot.update()\r\nroot.mainloop()<\/pre>\n<p><strong>Explanation:<\/strong><\/p>\n<ul>\n<li>To initialize the to-do list window, you need to initialize the <strong>Tk()<\/strong> class to a variable. Then, you need to set the following attributes:\n<ul>\n<li><strong>title()<\/strong> method is used to give a title to the project window.<\/li>\n<li><strong>geometry()<\/strong> method is used to set the initial geometry of window.<\/li>\n<li><strong>resizable()<\/strong> method is used to allow\/deny the user the permission to resize the python to-do list window. It takes truthy and falsy values and arguments to the parameters width and height.<\/li>\n<li><strong>config()<\/strong> method is used to configure some extra attributes of the window, like bg or background to set the background color.<\/li>\n<li><strong>update()<\/strong> and <strong>.mainloop()<\/strong> methods are used to put the window in a loop to prevent it from closing nanoseconds after it opens.<\/li>\n<li>Note: These lines of code will be considered the last lines that will be read by the interpreter to run the script.<\/li>\n<\/ul>\n<\/li>\n<li>The <strong>Label<\/strong> class is used to create a label that displays the static screen on the window and set the following parameters to it:\n<ul>\n<li><strong>master<\/strong> attribute, positional argument root in this case, is used to specify the parent widget of the widget.<\/li>\n<li><strong>text<\/strong> attribute is used to mention the text that will be displayed on the label.<\/li>\n<li><strong>font<\/strong> is used to specify the font family, size and effects on the text.<\/li>\n<li><strong>wraplength<\/strong> attribute is the length after which the text will be wrapped on the window.<\/li>\n<\/ul>\n<\/li>\n<li>The <strong>Button<\/strong> class is used to create a button on the screen that executes a function as a command when pressed. You need to give it the parameters as mentioned in the code to add it to the screen.\n<ul>\n<li><strong>command<\/strong> attribute is the function that will run when the button is pressed. You do not need to use the lambda keyword if the function requires no arguments.<\/li>\n<li><strong>width<\/strong> attribute is the width of the button in pixels.<\/li>\n<\/ul>\n<\/li>\n<li>The <strong>Entry<\/strong> class is used to add an input widget to the window that accepts input data from the user. The attributes and methods of this class used in this python to do list project are:\n<ul>\n<li>The <strong>.get()<\/strong> method is used to get the text inputted by the user in the widget. It requires no arguments for this widget.<\/li>\n<\/ul>\n<\/li>\n<li>The <strong>Listbox<\/strong> class is used to add a list box to the window that displays multiple items on the screen. Its attributes, parameters and methods are:\n<ul>\n<li><strong>selectbackground<\/strong> attribute is used to mention the color of the background once an item is selected.<\/li>\n<li><strong>width<\/strong> attribute represents the number of characters visible.<\/li>\n<li><strong>height<\/strong> attribute represents the number of items visible on the screen.<\/li>\n<li><strong>yscrollcommand<\/strong> attribute is used to pack the widget to a scrollbar that will navigate up and down the widget.<\/li>\n<li><strong>insert()<\/strong> method is used to insert an element to the widget. It takes 2 arguments, index and element.\n<ul>\n<li>index can either be a number or an acceptable tkinter constant, END, in this case.<\/li>\n<li>The element is the item to be added to the widget.<\/li>\n<\/ul>\n<\/li>\n<li><strong>get()<\/strong> method is used to get an element from the widget. It takes only one &#8211; index argument.\n<ul>\n<li>The index is either a number or an acceptable tkinter constant, which in this case is ACTIVE to get the selected element.<\/li>\n<\/ul>\n<\/li>\n<li><strong>yview()<\/strong> method is used to make the widget vertically scrollable.<\/li>\n<\/ul>\n<\/li>\n<li>The <strong>Scrollbar<\/strong> class is used to add a scroll bar to the widget on the window to navigate up and down, or right to left in said widget. Its attributes (undiscussed) are:\n<ul>\n<li>The <strong>orient<\/strong> attribute is used to mention whether the scrollbar will scroll vertically or horizontally.<\/li>\n<\/ul>\n<\/li>\n<li>The with open(&#8220;&lt;filename&gt;.&lt;extension&gt;&#8221;, &#8220;&lt;mode&gt;&#8221;) as alias is used to open a file in the &lt;mode&gt; mode, to perform actions on it.\n<ul>\n<li>The modes are:\n<ul>\n<li>\u201cr\u201d, for reading a file<\/li>\n<li>\u201cw\u201d, for writing a file<\/li>\n<li>\u201ca\u201d, for appending text to the file<\/li>\n<li>\u201cx\u201d, to create a file<\/li>\n<li>\u201cr+\u201d, for reading and writing a file<\/li>\n<li>\u201ct\u201d, to open the file in text mode (default)<\/li>\n<li>\u201cb\u201d, to open the file in binary mode.<\/li>\n<\/ul>\n<\/li>\n<li>The actions that can be performed on it are:\n<ul>\n<li>To close &#8211; <strong>.close()<\/strong> method<\/li>\n<li>To rewrite the file completely &#8211; <strong>.write(\u2018\u2019)<\/strong> method when opened in \u201cw\u201d or \u201cr+\u201d mode<\/li>\n<li>To add text to the file <strong>&#8211; .write(text_to_add)<\/strong> method when opened in \u201ca\u201d mode<\/li>\n<li>To reduce the size<strong> &#8211; .truncate(int(&lt;size in bytes&gt;))<\/strong> method<\/li>\n<li>To store all the lines in a list <strong>&#8211; .readlines()<\/strong> method<\/li>\n<li>To remove a line <strong>&#8211; .remove(line_to_remove)<\/strong> method<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>3. Creating the add_item and delete_item functions:<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Adding and Deleting items functions\r\ndef add_item(entry: Entry, listbox: Listbox):\r\n    new_task = entry.get()\r\n\r\n    listbox.insert(END, new_task)\r\n\r\n    with open('tasks.txt', 'a') as tasks_list_file:\r\n        tasks_list_file.write(f'\\n{new_task}')\r\n\r\n\r\ndef delete_item(listbox: Listbox):\r\n    listbox.delete(ACTIVE)\r\n\r\n    with open('tasks.txt', 'r+') as tasks_list_file:\r\n        lines = tasks_list_file.readlines()\r\n\r\n        tasks_list_file.truncate()\r\n\r\n        for line in lines:\r\n            if listbox.get(ACTIVE) == line[:-2]:\r\n                lines.remove(line)\r\n            tasks_list_file.write(line)\r\n\r\n        tasks_list_file.close()\r\n\r\n<\/pre>\n<p><strong>Explanation:<\/strong><\/p>\n<ul>\n<li>In this step, we will create two functions, one to add items to the python to-do list and the other to delete an item from the list.<\/li>\n<li>In the <strong>add_item<\/strong> function, the user will give it to arguments, one an Entry object and the other a Listbox object.\n<ul>\n<li>In this function, we will give the Entry object\u2019s user-provided text to a variable and then insert that variable to the last of our listbox object, and the last line of our text file.<\/li>\n<\/ul>\n<\/li>\n<li>In the delete_item function, the user will give the function one argument that will be a listbox object.\n<ul>\n<li>In this function, we will delete the item selected in the listbox object. We will first remove that element from the listbox and then go through every text file line to see if anything matches. If it does, we remove it too.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Python To-do List Output<\/h3>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/07\/python-to-do-list-output.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-83136\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/07\/python-to-do-list-output.png\" alt=\"python to do list output\" width=\"375\" height=\"536\" \/><\/a><\/p>\n<h3>Summary:<\/h3>\n<p>Congratulations! We have now created our own GUI based To-Do list using the Python Tkinter module.<\/p>\n<p>Now you have with yourself a portable to-do list that you can open anywhere, even on your phone if you run this script through Pydroid 3. Based on further requirements, you can make many more improvements and make it even more fun!<\/p>\n<p>Have fun coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this Python project, we will build a GUI-based To Do List using the Tkinter module and File I\/O. It is a beginner-level python project, and you should have basic knowledge of file I\/O&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":83137,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1053],"tags":[483,3758,3759],"class_list":["post-82848","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-python-project","tag-python-to-do-list","tag-to-do-list"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create a To Do List in Python - TechVidvan<\/title>\n<meta name=\"description\" content=\"Python To Do List Project - Create a GUI based To-do List in python using tkinter and basic file level operations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a To Do List in Python - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Python To Do List Project - Create a GUI based To-do List in python using tkinter and basic file level operations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-06T07:27:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-03T10:30:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/07\/create-to-do-list-in-python.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create a To Do List in Python - TechVidvan","description":"Python To Do List Project - Create a GUI based To-do List in python using tkinter and basic file level operations.","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:\/\/techvidvan.com\/tutorials\/python-to-do-list\/","og_locale":"en_US","og_type":"article","og_title":"Create a To Do List in Python - TechVidvan","og_description":"Python To Do List Project - Create a GUI based To-do List in python using tkinter and basic file level operations.","og_url":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2021-07-06T07:27:32+00:00","article_modified_time":"2026-06-03T10:30:03+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/07\/create-to-do-list-in-python.jpg","type":"image\/jpeg"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Create a To Do List in Python","datePublished":"2021-07-06T07:27:32+00:00","dateModified":"2026-06-03T10:30:03+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/"},"wordCount":1258,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/07\/create-to-do-list-in-python.jpg","keywords":["Python project","python to do list","to-do list"],"articleSection":["Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/","url":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/","name":"Create a To Do List in Python - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/07\/create-to-do-list-in-python.jpg","datePublished":"2021-07-06T07:27:32+00:00","dateModified":"2026-06-03T10:30:03+00:00","description":"Python To Do List Project - Create a GUI based To-do List in python using tkinter and basic file level operations.","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/07\/create-to-do-list-in-python.jpg","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/07\/create-to-do-list-in-python.jpg","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/python-to-do-list\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Create a To Do List in Python"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/82848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=82848"}],"version-history":[{"count":2,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/82848\/revisions"}],"predecessor-version":[{"id":448158,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/82848\/revisions\/448158"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/83137"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=82848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=82848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=82848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}