{"id":22316,"date":"2020-09-08T01:50:29","date_gmt":"2020-09-08T08:50:29","guid":{"rendered":"https:\/\/careerkarma.com\/blog\/?p=22316"},"modified":"2023-12-01T03:59:30","modified_gmt":"2023-12-01T11:59:30","slug":"python-attributeerror-module-object-has-no-attribute-urlopen","status":"publish","type":"post","link":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/","title":{"rendered":"Python AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 Solution"},"content":{"rendered":"\n<p>The urllib module changed the way that the <code>request<\/code> function is accessed in Python 3. This means that if you try to reference the \u201curlopen\u201d function in the way that you do in Python 2, you\u2019ll encounter the \u201cAttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019\u201d error.<br><\/p>\n\n\n\n<p>This guide talks about what this error means and why it is raised. It walks through an example of this error so you can learn how to solve it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019<\/h2>\n\n\n\n<p>The \u201curllib\u201d <a href=\"https:\/\/careerkarma.com\/blog\/python-modules\/\">module<\/a> provides a number of functions related to opening URLs and reading data from websites. The syntax for using this library is different between <a href=\"https:\/\/careerkarma.com\/blog\/python-2-vs-python-3\/\">Python 2 and Python 3<\/a>.<br><\/p>\n\n\n\n<p>In Python 2, \u201curlopen\u201d is part of the \u201curllib\u201d module. This means you can import it into your code using urllib.urlopen. In Python 3, \u201curlopen\u201d is part of a \u201crequest\u201d module within the \u201curllib\u201d method:<br><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Python 2: urllib -&gt; urlopen<\/li><li>Python 3: urllib -&gt; request -&gt; urlopen<\/li><\/ul>\n\n\n\n<p>The \u201crequest\u201d module is where many of the web request functions in the \u201curllib\u201d package are bundled. AttributeErrors are raised when you try to access an attribute from a module that does not contain that attribute. In this case, \u201curlopen\u201d is not part of the \u201curllib\u201d module.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">An Example Scenario<\/h2>\n\n\n\n<p>Build a program that retrieves data from a service called JSONPlaceholder. This service provides dummy data that you can use for your example.&nbsp;<br><\/p>\n\n\n\n<p>Retrieve a single post with the ID #2. To start, <a href=\"https:\/\/careerkarma.com\/blog\/python-import\/\">import the urllib module<\/a>:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>import urllib<\/pre><\/div>\n\n\n\n<p>This statement lets you use functions from within the \u201curllib\u201d module in the program.<br><\/p>\n\n\n\n<p>Next, make a request using \u201curlopen\u201d. This will let you retrieve the data from an endpoint on the JSONPlaceholder API:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>data = urllib.urlopen(&quot;https:\/\/jsonplaceholder.typicode.com\/posts\/2&quot;)\ncontents = data.read()\nprint(as_json)<\/pre><\/div>\n\n\n\n<p>This code reads data for the post with the ID #2 on the JSONPlaceholder API.&nbsp;<br><\/p>\n\n\n\n<p>The code prints the response from our request, formatted as a JSON string, to the console using a print statement. Run the code and see what happens:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>Traceback (most recent call last):\n  File &quot;main.py&quot;, line 4, in &lt;module&gt;\n\t    data = urllib.urlopen(&quot;https:\/\/jsonplaceholder.typicode.com\/posts\/2&quot;)\nAttributeError: module 'urllib' has no attribute 'urlopen'<\/pre><\/div>\n\n\n\n<p>The program returns an error.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Solution<\/h2>\n\n\n\n<p>You\u2019re using the <a href=\"https:\/\/careerkarma.com\/blog\/how-to-code-in-python\/\">Python 2 syntax<\/a> to access the \u201curlopen\u201d method. \u201curlopen\u201d is not an attribute of \u201curllib\u201d in Python 3. You reference \u201curlopen\u201d as an attribute of \u201curllib\u201d so the program fails to run properly.<br><\/p>\n\n\n\n<p>To solve this problem, import the \u201crequest\u201d module from the \u201curllib\u201d module. This module contains the \u201curlopen\u201d method:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>import urllib.request<\/pre><\/div>\n\n\n\n<p>Next, change the code so that you reference the urllib.request module when you retrieve data from the JSONPlaceholder API:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>data = urllib.request.urlopen(&quot;https:\/\/jsonplaceholder.typicode.com\/posts\/2&quot;)\ncontents = data.read().decode('utf-8')\n\nprint(contents)<\/pre><\/div>\n\n\n\n<p>This code will read the contents of the API endpoint that we call. Let&#8217;s run our code:<br><\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre>{\n  &quot;userId&quot;: 1,\n  &quot;id&quot;: 2,\n  &quot;title&quot;: &quot;qui est esse&quot;,\n  &quot;body&quot;: &quot;est rerum tempore vitae\\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\\nqui aperiam non debitis possimus qui neque nisi nulla&quot;\n}<\/pre><\/div>\n\n\n\n<p>You have decoded the response you receive using the <code>decode()<\/code> method. Do this so you can read the values returned by the <code>urlopen()<\/code> method as a string.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>The \u201curlopen\u201d function is not an object of \u201curllib\u201d in Python 3. To access this function, import \u201curllib.request\u201d into your code and reference the <code>urllib.request.urlopen()<\/code> function.<br><\/p>\n\n\n\n<p>Now you have the knowledge you need to <a href=\"https:\/\/careerkarma.com\/blog\/how-long-to-learn-python\/\">fix this Python error like a professional<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"The urllib module changed the way that the request function is accessed in Python 3. This means that if you try to reference the \u201curlopen\u201d function in the way that you do in Python 2, you\u2019ll encounter the \u201cAttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019\u201d error. This guide talks about what this error means and&hellip;","protected":false},"author":240,"featured_media":19430,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[16578],"tags":[],"class_list":{"0":"post-22316","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-python"},"acf":{"post_sub_title":"","sprint_id":"","query_class":"Python","school_sft":"","parent_sft":"","school_privacy_policy":"","has_review":null,"is_sponser_post":"","is_guest_post":[]},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Python Error: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 | Career Karma<\/title>\n<meta name=\"description\" content=\"On Career Karma, learn about the AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 error, how the error works, and how to solve the error.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 Solution\" \/>\n<meta property=\"og:description\" content=\"On Career Karma, learn about the AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 error, how the error works, and how to solve the error.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/\" \/>\n<meta property=\"og:site_name\" content=\"Career Karma\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/careerkarmaapp\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-08T08:50:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-01T11:59:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/anas-alshanti-feXpdV001o4-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"631\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"James Gallagher\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@career_karma\" \/>\n<meta name=\"twitter:site\" content=\"@career_karma\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"James Gallagher\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/\"},\"author\":{\"name\":\"James Gallagher\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#\\\/schema\\\/person\\\/e79364792443fbff794a144c67ec8e94\"},\"headline\":\"Python AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 Solution\",\"datePublished\":\"2020-09-08T08:50:29+00:00\",\"dateModified\":\"2023-12-01T11:59:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/\"},\"wordCount\":492,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/anas-alshanti-feXpdV001o4-unsplash.jpg\",\"articleSection\":[\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/\",\"name\":\"Python Error: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 | Career Karma\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/anas-alshanti-feXpdV001o4-unsplash.jpg\",\"datePublished\":\"2020-09-08T08:50:29+00:00\",\"dateModified\":\"2023-12-01T11:59:30+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#\\\/schema\\\/person\\\/e79364792443fbff794a144c67ec8e94\"},\"description\":\"On Career Karma, learn about the AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 error, how the error works, and how to solve the error.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/#primaryimage\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/anas-alshanti-feXpdV001o4-unsplash.jpg\",\"contentUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/07\\\/anas-alshanti-feXpdV001o4-unsplash.jpg\",\"width\":1000,\"height\":631},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python-attributeerror-module-object-has-no-attribute-urlopen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/python\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Python AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 Solution\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/\",\"name\":\"Career Karma\",\"description\":\"Latest Coding Bootcamp News &amp; Career Hacks from Industry Insiders\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#\\\/schema\\\/person\\\/e79364792443fbff794a144c67ec8e94\",\"name\":\"James Gallagher\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/james-gallagher-150x150.jpg\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/james-gallagher-150x150.jpg\",\"contentUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/james-gallagher-150x150.jpg\",\"caption\":\"James Gallagher\"},\"description\":\"James Gallagher is a self-taught programmer and the technical content manager at Career Karma. He has experience in range of programming languages and extensive expertise in Python, HTML, CSS, and JavaScript. James has written hundreds of programming tutorials, and he frequently contributes to publications like Codecademy, Treehouse, Repl.it, Afrotech, and others.\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/author\\\/jamesgallagher\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python Error: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 | Career Karma","description":"On Career Karma, learn about the AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 error, how the error works, and how to solve the error.","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:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/","og_locale":"en_US","og_type":"article","og_title":"Python AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 Solution","og_description":"On Career Karma, learn about the AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 error, how the error works, and how to solve the error.","og_url":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/","og_site_name":"Career Karma","article_publisher":"http:\/\/facebook.com\/careerkarmaapp","article_published_time":"2020-09-08T08:50:29+00:00","article_modified_time":"2023-12-01T11:59:30+00:00","og_image":[{"width":1000,"height":631,"url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/anas-alshanti-feXpdV001o4-unsplash.jpg","type":"image\/jpeg"}],"author":"James Gallagher","twitter_card":"summary_large_image","twitter_creator":"@career_karma","twitter_site":"@career_karma","twitter_misc":{"Written by":"James Gallagher","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/#article","isPartOf":{"@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/"},"author":{"name":"James Gallagher","@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94"},"headline":"Python AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 Solution","datePublished":"2020-09-08T08:50:29+00:00","dateModified":"2023-12-01T11:59:30+00:00","mainEntityOfPage":{"@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/"},"wordCount":492,"commentCount":0,"image":{"@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/#primaryimage"},"thumbnailUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/anas-alshanti-feXpdV001o4-unsplash.jpg","articleSection":["Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/","url":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/","name":"Python Error: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 | Career Karma","isPartOf":{"@id":"https:\/\/careerkarma.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/#primaryimage"},"image":{"@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/#primaryimage"},"thumbnailUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/anas-alshanti-feXpdV001o4-unsplash.jpg","datePublished":"2020-09-08T08:50:29+00:00","dateModified":"2023-12-01T11:59:30+00:00","author":{"@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94"},"description":"On Career Karma, learn about the AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 error, how the error works, and how to solve the error.","breadcrumb":{"@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/#primaryimage","url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/anas-alshanti-feXpdV001o4-unsplash.jpg","contentUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/07\/anas-alshanti-feXpdV001o4-unsplash.jpg","width":1000,"height":631},{"@type":"BreadcrumbList","@id":"https:\/\/careerkarma.com\/blog\/python-attributeerror-module-object-has-no-attribute-urlopen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/careerkarma.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/careerkarma.com\/blog\/python\/"},{"@type":"ListItem","position":3,"name":"Python AttributeError: \u2018module\u2019 object has no attribute \u2018urlopen\u2019 Solution"}]},{"@type":"WebSite","@id":"https:\/\/careerkarma.com\/blog\/#website","url":"https:\/\/careerkarma.com\/blog\/","name":"Career Karma","description":"Latest Coding Bootcamp News &amp; Career Hacks from Industry Insiders","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/careerkarma.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/e79364792443fbff794a144c67ec8e94","name":"James Gallagher","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg","url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg","contentUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/01\/james-gallagher-150x150.jpg","caption":"James Gallagher"},"description":"James Gallagher is a self-taught programmer and the technical content manager at Career Karma. He has experience in range of programming languages and extensive expertise in Python, HTML, CSS, and JavaScript. James has written hundreds of programming tutorials, and he frequently contributes to publications like Codecademy, Treehouse, Repl.it, Afrotech, and others.","url":"https:\/\/careerkarma.com\/blog\/author\/jamesgallagher\/"}]}},"_links":{"self":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts\/22316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/users\/240"}],"replies":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/comments?post=22316"}],"version-history":[{"count":0,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts\/22316\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/media\/19430"}],"wp:attachment":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/media?parent=22316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/categories?post=22316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/tags?post=22316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}