{"id":21729,"date":"2022-11-15T05:31:40","date_gmt":"2022-11-15T00:01:40","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/"},"modified":"2022-11-15T05:31:40","modified_gmt":"2022-11-15T00:01:40","slug":"solved-what-is-the-python-vesion-of-this","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/","title":{"rendered":"[Solved] What is the python vesion of this?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-51371949\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"51371949\" data-parentid=\"51371771\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>Before getting into any of this: As chepner pointed out in a comment, this input looks like, and therefore is probably intended to be, JSON. Which means you shouldn&#8217;t be parsing it with regular expressions; just parse it as JSON:<\/p>\n<pre><code>&gt;&gt;&gt; s=\"\"' {\"text\": \"Love this series!\\ufeff\", \"time\": \"Hace 11 horas\", \"author\": \"HasRah\", \"cid\": \"UgyvXmvSiMjuDrOQn-l4AaABAg\"}'''\n&gt;&gt;&gt; obj = json.loads(s)\n&gt;&gt;&gt; obj['author']\n'HasRah'\n<\/code><\/pre>\n<p>Actually, it&#8217;s not clear whether your input is a JSON file (a file containing one JSON text), or a JSONlines file (a file containing a bunch of lines, each of which is a JSON text with no embedded newlines).<sup>1<\/sup><\/p>\n<p>For the former, you want to parse it like this:<\/p>\n<pre><code>obj = json.load(st)\n<\/code><\/pre>\n<p>For the latter, you want to loop over the lines, and parse each one like this:<\/p>\n<pre><code>for line in st:\n    obj = json.loads(line)\n<\/code><\/pre>\n<p>\u2026 or, alternatively, you can get a JSONlines library off PyPI.<\/p>\n<hr>\n<p>But meanwhile, if you want to understand what&#8217;s wrong with your code:<\/p>\n<p>The error message is telling you the problem, although maybe not in the user-friendliest way:<\/p>\n<pre><code>Traceback (most recent call last):\n  File \"&lt;stdin&gt;\", line 1, in &lt;module&gt;\n  File \"\/usr\/lib\/python2.7\/re.py\", line 148, in search\n    return _compile(pattern, flags).search(string)\nTypeError: expected string or bytes-like object\n<\/code><\/pre>\n<p>See the docs for <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.python.org\/2\/library\/re.html#re.search\"><code>search<\/code><\/a> make clear:<\/p>\n<pre><code>re.search(pattern, string, flags=0)\n<\/code><\/pre>\n<blockquote>\n<p>Scan through <em>string<\/em> looking for the first location where the regular expression <em>pattern<\/em> produces a match, and return a corresponding <code>MatchObject<\/code> instance\u2026<\/p>\n<\/blockquote>\n<p>You haven&#8217;t passed it a string, you&#8217;ve passed it a <em>list of strings<\/em>. That&#8217;s the whole point of <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.python.org\/2\/library\/stdtypes.html#file.readlines\"><code>readlines<\/code><\/a>, after all.<\/p>\n<hr>\n<p>There are two obvious fixes here.<\/p>\n<p>First, you could read the whole file into a single string, instead of reading it into a list of strings:<\/p>\n<pre><code>s = st.read()\nu = re.search('%s(.*)%s' % (start, end), s).group(1)\n<\/code><\/pre>\n<p>Alternatively, you could loop over the lines, trying to match each one. And, if you do this, you still don&#8217;t need <code>readlines()<\/code>, because a file is <em>already<\/em> an iterable of lines:<\/p>\n<pre><code>for line in st:\n    u = re.search('%s(.*)%s' % (start, end), line).group(1)\n<\/code><\/pre>\n<hr>\n<p>While we&#8217;re at it, if any of your lines don&#8217;t match the pattern, this is going to raise an <code>AttributeError<\/code>. After all, <code>search<\/code> returns <code>None<\/code> if there&#8217;s no match, but then you&#8217;re going to try to call <code>None.group(1)<\/code>.<\/p>\n<p>There are two obvious fixes here as well.<\/p>\n<p>You could handle that error:<\/p>\n<pre><code>try:\n    u = re.search('%s(.*)%s' % (start, end), line).group(1)\nexcept AttributeError:\n    pass\n<\/code><\/pre>\n<p>\u2026 or you could check whether you got a match:<\/p>\n<pre><code>m = re.search('%s(.*)%s' % (start, end), line)\nif m:\n    u = m.group(1)\n<\/code><\/pre>\n<hr>\n<p><sub>1. In fact, there are at least two other formats that are nearly, but not quite, identical to JSONlines. I <em>think<\/em> that if you only care about reading, not creating files, and you don&#8217;t have any numbers, you can parse all of them with a loop around <code>json.loads<\/code> or with a JSONlines library. But if you know who created the file, and know that they intended it to be, say, NDJ rather than JSONlines, you should read the docs on NDJ, or get a library made for NDJ, rather than just trusting that some guy on the internet thinks it&#8217;s OK to treat it as JSONlines.<\/sub><\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">0<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved What is the python vesion of this? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Before getting into any of this: As chepner pointed out in a comment, this input looks like, and therefore is probably intended to be, JSON. Which means you shouldn&#8217;t be parsing it with regular expressions; just parse it as JSON: &gt;&gt;&gt; s=&#8221;&#8221;&#8216; {&#8220;text&#8221;: &#8220;Love this series!\\ufeff&#8221;, &#8220;time&#8221;: &#8220;Hace 11 horas&#8221;, &#8220;author&#8221;: &#8220;HasRah&#8221;, &#8220;cid&#8221;: &#8220;UgyvXmvSiMjuDrOQn-l4AaABAg&#8221;}&#8221;&#8217; &#8230; <a title=\"[Solved] What is the python vesion of this?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/\" aria-label=\"More on [Solved] What is the python vesion of this?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[349,865],"class_list":["post-21729","post","type-post","status-publish","format-standard","hentry","category-solved","tag-python","tag-scripting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] What is the python vesion of this? - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] What is the python vesion of this? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Before getting into any of this: As chepner pointed out in a comment, this input looks like, and therefore is probably intended to be, JSON. Which means you shouldn&#8217;t be parsing it with regular expressions; just parse it as JSON: &gt;&gt;&gt; s=&quot;&quot;&#039; {&quot;text&quot;: &quot;Love this series!ufeff&quot;, &quot;time&quot;: &quot;Hace 11 horas&quot;, &quot;author&quot;: &quot;HasRah&quot;, &quot;cid&quot;: &quot;UgyvXmvSiMjuDrOQn-l4AaABAg&quot;}&#039;&#039;&#039; ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-15T00:01:40+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\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:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] What is the python vesion of this?\",\"datePublished\":\"2022-11-15T00:01:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/\"},\"wordCount\":436,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"python\",\"scripting\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/\",\"name\":\"[Solved] What is the python vesion of this? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-11-15T00:01:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] What is the python vesion of this?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] What is the python vesion of this? - JassWeb","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:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] What is the python vesion of this? - JassWeb","og_description":"[ad_1] Before getting into any of this: As chepner pointed out in a comment, this input looks like, and therefore is probably intended to be, JSON. Which means you shouldn&#8217;t be parsing it with regular expressions; just parse it as JSON: &gt;&gt;&gt; s=\"\"' {\"text\": \"Love this series!ufeff\", \"time\": \"Hace 11 horas\", \"author\": \"HasRah\", \"cid\": \"UgyvXmvSiMjuDrOQn-l4AaABAg\"}''' ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/","og_site_name":"JassWeb","article_published_time":"2022-11-15T00:01:40+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] What is the python vesion of this?","datePublished":"2022-11-15T00:01:40+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/"},"wordCount":436,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["python","scripting"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/","url":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/","name":"[Solved] What is the python vesion of this? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-11-15T00:01:40+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-python-vesion-of-this\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] What is the python vesion of this?"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/21729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=21729"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/21729\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=21729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=21729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=21729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}