{"id":447862,"date":"2025-11-11T18:00:53","date_gmt":"2025-11-11T12:30:53","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=447862"},"modified":"2026-06-03T17:11:09","modified_gmt":"2026-06-03T11:41:09","slug":"python-expense-tracker-project","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/","title":{"rendered":"Python Project &#8211; Expense Tracker"},"content":{"rendered":"<p>The Expense Tracker GUI application is a user-friendly interface for managing personal expenses. Built using Python&#8217;s Tkinter library, the application offers functionalities to add, view, and delete expenses stored in a JSON file <strong>(expenses.json). <\/strong><\/p>\n<h3>Objectives of Python Expense Tracker<\/h3>\n<ul>\n<li>Allow users to interact with the application through a straightforward command-line interface.<\/li>\n<li>Save expense records in a file to ensure data persistence across sessions.<\/li>\n<li>Implement basic CRUD (Create, Read, Update, Delete) operations for managing expenses.<\/li>\n<\/ul>\n<h3>Project Setup<\/h3>\n<h4>Required Libraries<\/h4>\n<p>The project requires the following standard Python libraries:<\/p>\n<ul>\n<li><strong>json:<\/strong> For reading and writing data to the JSON file.<\/li>\n<li><strong>Tkinter:<\/strong> Provides GUI elements and interactions for the application.<\/li>\n<li><strong>datetime:<\/strong> For recording the date and time of each expense entry.<\/li>\n<\/ul>\n<h4>Prerequisites for Python Expense Tracker<\/h4>\n<ul>\n<li>IDE \u2013 Visual Studio Code<\/li>\n<li>Python Environment<\/li>\n<li>JSON<\/li>\n<li>The user should have a good understanding of the above topics<\/li>\n<\/ul>\n<h3>Download the Python Expense Tracker Project<\/h3>\n<p>Please download the source code of the Python Expense Tracker Project:<strong><a href=\"https:\/\/drive.google.com\/file\/d\/1j3uqC1UOdnFuamZS7wFq0ClCOcD8yNZE\/view?usp=sharing\"> Python Expense Tracker Project Code<\/a>.<\/strong><\/p>\n<h3>Step-by-Step Implementation of Python Expense Tracker<\/h3>\n<h4>1. Loading Expenses<\/h4>\n<ul>\n<li>Using a try-catch block, open the DATA_FILE and read it in read mode.<\/li>\n<li><strong>except FileNotFoundError<\/strong> catches the FileNotFoundError exception, i.e., raised when the file specified is not found<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def load_expenses():\r\n   try:\r\n       with open(DATA_FILE, 'r') as file:\r\n           return json.load(file)\r\n   except FileNotFoundError: \r\n       return []\r\n<\/pre>\n<h4>Saving Expenses<\/h4>\n<ul>\n<li><strong>with open(DATA_FILE, &#8216;w&#8217;) as file:<\/strong> This opens the file specified by DATA_FILE in write mode.<\/li>\n<li><strong>json.dump(expenses, file, indent=4):<\/strong> Using json. We can dump the expenses data to the file in JSON format.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def save_expenses(expenses):\r\n   with open(DATA_FILE, 'w') as file:\r\n       json.dump(expenses, file, indent=4)<\/pre>\n<h4>2. Adding an Expense<\/h4>\n<ul>\n<li><strong>expenses = load_expenses():<\/strong> It calls the <strong>load expense<\/strong> function to fetch the current list of costs from the JSON file.<\/li>\n<li>An expense dictionary is defined to represent new expenses.<\/li>\n<li><strong>The new expense is appended and saved using\u00a0<strong>the expense function<\/strong>.append() &amp; save_expense()<\/strong><\/li>\n<li><strong>update_listbox():<\/strong> This function refreshes the user interface to display the updated list of expenses.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def add_expense(amount, category, description):\r\n   expenses = load_expenses()\r\n   expense = {\r\n       'amount': amount,\r\n       'category': category,\r\n       'description': description,\r\n       'date': datetime.now().strftime('%Y-%m-%d %H:%M:%S')\r\n   }\r\n   expenses.append(expense)\r\n   save_expenses(expenses)\r\n   update_listbox()\r\n<\/pre>\n<h4>3. Viewing Expenses<\/h4>\n<ul>\n<li><strong>expenses = load_expenses():<\/strong> It calls the <strong>load expense<\/strong> function to fetch the current list of costs from the JSON file.<\/li>\n<li>It displays all recorded expenses, showing the date, category, amount, and description for each entry..<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def view_expenses():\r\n   expenses = load_expenses()\r\n   return expenses\r\n<\/pre>\n<h4>4. Deleting an Expense<\/h4>\n<ul>\n<li><strong>expenses = load_expenses():<\/strong> It calls the <strong>load expense<\/strong> function to fetch the current list of costs from the JSON file.<\/li>\n<li>Using an if statement, we check whether the index is within the list&#8217;s valid range.<\/li>\n<li>The expense list is updated and saved using<strong> save_expense().<\/strong><\/li>\n<li><strong>update_listbox():<\/strong> This function refreshes the user interface to display the updated list of expenses.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def delete_expense(index):\r\n   expenses = load_expenses()\r\n   if 0 &lt;= index &lt; len(expenses):\r\n       del expenses[index]\r\n       save_expenses(expenses)\r\n       update_listbox()<\/pre>\n<h4>5. Adding &amp; Deleting using GUI<\/h4>\n<ul>\n<li><strong>add_expense_gui()<\/strong> function is responsible for adding a new expense based on user input from the GUI Entry widgets <strong>(amount_entry, category_entry, description_entry)<\/strong><\/li>\n<li><span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\"><strong>The delete_expense_gui()<\/strong>\u00a0function handles deleting costs based on the user&#8217;s selection from the Listbox\u00a0<strong>(expenses_listbox).<\/strong><\/span><\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def add_expense_gui():\r\n   amount = float(amount_entry.get())\r\n   category = category_entry.get()\r\n   description = description_entry.get()\r\n   add_expense(amount, category, description)\r\n   clear_entries()\r\n\r\n\r\ndef delete_expense_gui():\r\n   try:\r\n       index = expenses_listbox.curselection()[0]\r\n       delete_expense(index)\r\n   except IndexError:\r\n       pass\r\n<\/pre>\n<h4>6. Update &amp; Clear Entries<\/h4>\n<ul>\n<li><strong>expenses = view_expenses():<\/strong> It calls the <strong>view expense<\/strong> function to fetch the current list of expenses.<\/li>\n<li><strong>expenses_listbox.delete(0, tk.END):<\/strong> It clears all current entries in the <strong>expenses_listbox<\/strong> widget by deleting from the first item, i.e., index 0.<\/li>\n<li><strong>clear_entries()<\/strong> function clears the input fields (Entry widgets) in the GUI after an expense has been added.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">def update_listbox():\r\n   expenses = view_expenses()\r\n   expenses_listbox.delete(0, tk.END)\r\n   for expense in expenses:\r\n       expenses_listbox.insert(tk.END, f\"{expense['date']}: {expense['category']} - \u20b9{expense['amount']} ({expense['description']})\")\r\n\r\n\r\ndef clear_entries():\r\n   amount_entry.delete(0, tk.END)\r\n   category_entry.delete(0, tk.END)\r\n   description_entry.delete(0, tk.END)<\/pre>\n<h4>7. Tkinter Setup<\/h4>\n<ul>\n<li>It initialises the main Tkinter-based GUI application for an Expense Tracker.<\/li>\n<li>It establishes input fields for amount, category, and description using Entry widgets, along with buttons for adding and deleting expenses.<\/li>\n<li>A Listbox is used to display existing expenses, which are dynamically updated by the<strong> update_listbox()<\/strong> function.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">root = tk.Tk()\r\nroot.title(\"Expense Tracker\")\r\n\r\n\r\ntk.Label(root, text=\"Amount:\").grid(row=0, column=0, padx=10, pady=5)\r\namount_entry = tk.Entry(root)\r\namount_entry.grid(row=0, column=1, padx=10, pady=5)\r\n\r\n\r\ntk.Label(root, text=\"Category:\").grid(row=1, column=0, padx=10, pady=5)\r\ncategory_entry = tk.Entry(root)\r\ncategory_entry.grid(row=1, column=1, padx=10, pady=5)\r\n\r\n\r\ntk.Label(root, text=\"Description:\").grid(row=2, column=0, padx=10, pady=5)\r\ndescription_entry = tk.Entry(root)\r\ndescription_entry.grid(row=2, column=1, padx=10, pady=5)\r\n\r\n\r\nadd_button = tk.Button(root, text=\"Add Expense\", command=add_expense_gui)\r\nadd_button.grid(row=3, column=0, columnspan=2, padx=10, pady=5)\r\n\r\n\r\ndelete_button = tk.Button(root, text=\"Delete Expense\", command=delete_expense_gui)\r\ndelete_button.grid(row=4, column=0, columnspan=2, padx=10, pady=5)\r\n\r\n\r\nexpenses_listbox = tk.Listbox(root, width=50, height=10)\r\nexpenses_listbox.grid(row=5, column=0, columnspan=2, padx=10, pady=5)\r\n\r\n\r\nupdate_listbox()\r\n\r\n\r\nroot.mainloop()<\/pre>\n<h3>Python Expense Tracker Output<\/h3>\n<p><strong>1. Application Interface<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/expense-tracker-apllication-interface.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-447867 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/expense-tracker-apllication-interface.webp\" alt=\"expense tracker application interface\" width=\"418\" height=\"417\" \/><\/a><\/p>\n<p><strong>2. Add Expense<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/add-expense.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-447868 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/add-expense.webp\" alt=\"add expense\" width=\"423\" height=\"412\" \/><\/a><\/p>\n<p><strong>3. Added Expense<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-447869\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/added-expense.webp\" alt=\"added expense\" width=\"421\" height=\"413\" \/><\/p>\n<p><strong>4. Delete Expense<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/delete-expense.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-447870 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/delete-expense.webp\" alt=\"delete expense\" width=\"422\" height=\"413\" \/><\/a><\/p>\n<p><strong>5. Deleted Expens<\/strong>e<\/p>\n<h3><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/deleted-expense.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-447871 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/deleted-expense.webp\" alt=\"deleted expense\" width=\"423\" height=\"412\" \/><\/a><\/h3>\n<h3>Applications<\/h3>\n<ul>\n<li><strong>Filtering and Sorting<\/strong>: Implement features to filter expenses by date, category, or amount and sort them accordingly.<\/li>\n<li><strong>Data Validation:<\/strong> Add input validation to ensure data integrity (e.g., by ensuring that the entered amount is a positive number).<\/li>\n<li><strong>Reporting:<\/strong> Generate monthly or yearly expense reports and summaries.<\/li>\n<\/ul>\n<h3>Conclusion<\/h3>\n<p>The Expense Tracker GUI application, developed using Python and Tkinter, provides a robust solution for managing personal expenses. By focusing on user-friendly interaction and basic CRUD operations, the application meets fundamental requirements for effective expense tracking. Future development efforts can further enrich the application with advanced features to cater to diverse user needs and improve overall utility.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Expense Tracker GUI application is a user-friendly interface for managing personal expenses. Built using Python&#8217;s Tkinter library, the application offers functionalities to add, view, and delete expenses stored in a JSON file (expenses.json).&#46;&#46;&#46;<\/p>\n","protected":false},"author":710,"featured_media":447864,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1053],"tags":[5721,5720,5719,5718,5722,483,3249,1207,5717],"class_list":["post-447862","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-create-an-expense-tracker-using-python","tag-expense-tracker-in-python","tag-python-expense-tracker","tag-python-expense-tracker-project","tag-python-expense-tracker-with-source-code","tag-python-project","tag-python-project-for-beginners","tag-python-project-for-practice","tag-python-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Python Project - Expense Tracker - TechVidvan<\/title>\n<meta name=\"description\" content=\"The Expense Tracker GUI application developed using Python and Tkinter provides a robust solution for managing personal expenses.\" \/>\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-expense-tracker-project\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Project - Expense Tracker - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"The Expense Tracker GUI application developed using Python and Tkinter provides a robust solution for managing personal expenses.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/\" \/>\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=\"2025-11-11T12:30:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-03T11:41:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/python-expens-tracker-project.webp\" \/>\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\/webp\" \/>\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=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python Project - Expense Tracker - TechVidvan","description":"The Expense Tracker GUI application developed using Python and Tkinter provides a robust solution for managing personal expenses.","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-expense-tracker-project\/","og_locale":"en_US","og_type":"article","og_title":"Python Project - Expense Tracker - TechVidvan","og_description":"The Expense Tracker GUI application developed using Python and Tkinter provides a robust solution for managing personal expenses.","og_url":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2025-11-11T12:30:53+00:00","article_modified_time":"2026-06-03T11:41:09+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/python-expens-tracker-project.webp","type":"image\/webp"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/829765a79c50bfc57ec4a1049442c1d5"},"headline":"Python Project &#8211; Expense Tracker","datePublished":"2025-11-11T12:30:53+00:00","dateModified":"2026-06-03T11:41:09+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/"},"wordCount":690,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/python-expens-tracker-project.webp","keywords":["create an expense tracker using python","expense tracker in python","python expense tracker","python expense tracker project","python expense tracker with source code","Python project","python project for beginners","Python project for practice","python tutorials"],"articleSection":["Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/","url":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/","name":"Python Project - Expense Tracker - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/python-expens-tracker-project.webp","datePublished":"2025-11-11T12:30:53+00:00","dateModified":"2026-06-03T11:41:09+00:00","description":"The Expense Tracker GUI application developed using Python and Tkinter provides a robust solution for managing personal expenses.","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/python-expens-tracker-project.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2025\/10\/python-expens-tracker-project.webp","width":1200,"height":628,"caption":"python expense tracker project"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/python-expense-tracker-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Python Project &#8211; Expense Tracker"}]},{"@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\/829765a79c50bfc57ec4a1049442c1d5","name":"TechVidvan Team"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/447862","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\/710"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=447862"}],"version-history":[{"count":9,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/447862\/revisions"}],"predecessor-version":[{"id":448175,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/447862\/revisions\/448175"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/447864"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=447862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=447862"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=447862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}