Converting Google Cloud Vision OCR X and Y Co-ordinates to bbox Co-ordinates - ocr

Google Cloud Vision OCR has the following Output for a bounding box Object.
vertices {
x: 786
y: 967
}
Desired Output Format for Bounding Box
I want to go ahead and convert these co-ordinates to bounding box co-ordinates to write them in my hOCR format.
Which includes the following format for writing those in the file.
<span class='ocr_line' title="bbox 348 797 1482 838; baseline -0.009 -6">
Questions?
So how can I convert these x and y co-ordinates to these bbox (Bounding Box Co-ordinates).
What are these x and y co-ordinates is it (x_min, y_max) or (x_max, y_min). In general I want to also know what do these x and y represent?
Working on Image
I am working on the following image as my test.

As informed by #Christoph Rackwitz in the coments, this value is just a point. Each letter will be indicated by a set of 4 of this points, creating a bbox, like the following:
{
"description": "وأما",
"boundingPoly": {
"vertices": [
{
"x": 1088,
"y": 230
},
{
"x": 1145,
"y": 230
},
{
"x": 1145,
"y": 289
},
{
"x": 1088,
"y": 289
}
]
}
},
And the entire Page will be on the first object, as following:
{
"locale": "ar",
"description": "وأما ثانيا : فلأنه يخرج منه من زنی مثلا ثم جب ذكرة فإنه\nلا يتأتی\nمنه غير الندم على ما مضی ، وأما العزم على عدم\nقال : إن الندم\nيكفي في حد التوبة ، وليس كما قال ؛ لانه لو ندم ولم يقلع\nوعزم على العود لم يكن تائبا اتفاقا ، قال : وقال بعض المحق قين :\nاختيار ترك ذنب سبق حقيقة. أو تقديرا لأجل ال له قال :\nالعود فلا يتصور منه ، قال : وبهذا اغتر من\nهي\nوهذا أسد العبارات وأجمعها لأن التائب لا يكون تار کا\nل لذنب الذي فرغ لأنه غير متمكن من عينه لا تركا ولا فعلا ،\nمثله حقيقة ، وكذا من لم يقع منه ذنب\nمتمكن\nوإنما هو\nمن\nإنما يصح منه اتقاء ما يمكن أن يقع لا ترك مثل ما وقع فيكون\nمتقيا لا تائبا ، قال : والباعث على هذا تنبيه إلهي لمن أراد\nمهلك يفوث على\nلأنه\nسم\nسعادته لقبح الذنب وضر ره ؛\nالإنسان سعادة الدنيا والآخرة ويحجبة عن معرفة ال له. تعالي في\nالدنيا ، وعن تقريبه في الآخرة\nقال : ومن تفقد نفسه وجدها مشحونة بهذا السم فإذا وفق\nانبعث منه خوف هجوم الهلاك عليه ، فيبادر بطلب ما يدفع\n",
"boundingPoly": {
"vertices": [
{
"x": 122,
"y": 223
},
{
"x": 1197,
"y": 223
},
{
"x": 1197,
"y": 1688
},
{
"x": 122,
"y": 1688
}
]
}
},
You can process the json with the 4 points to generate the object you need.
Check this page, where you can Try the API. I have used the image url of the upload on stack overflow as the image source (i.e "imageUri": "https://i.stack.imgur.com/9MXec.jpg")

Related

flutter REST API reading with nested JSON link

I'm integrating an API I found on Github and In the JSON data there is a link object which leads to another JSON file. this particular REST API structure is as follows.
{
"aar_sheikhmahmoudab": {
"name": "aar-sheikhmahmoudab",
"author": "Sheikh Mahmoud Abdel Qader Hamz And Group Of Scholars",
"language": "Afar",
"direction": "ltr",
"source": "https://qurancomplex.gov.sa/",
"comments": "This translation was OCRed, in case you find any mistakes,
"link": "https://cdn.jsdelivr.net/gh/fawazahmed0/quran-api#1/editions/aar-sheikhmahmoudab.json",
"linkmin": "https://cdn.jsdelivr.net/gh/fawazahmed0/quran-api#1/editions/aar-sheikhmahmoudab.min.json"
},
"ace_tgkhmahjiddinju": {
"name": "ace-tgkhmahjiddinju",
"author": "Tgk. H. Mahjiddin Jusuf",
"language": "Achinese",
"direction": "ltr",
"source": "https://www.islamic-invitation.com/",
"comments": "This translation was OCRed, in case you find any mistakes,
"link": "https://cdn.jsdelivr.net/gh/fawazahmed0/quran-api#1/editions/ace-tgkhmahjiddinju.json",
"linkmin": "https://cdn.jsdelivr.net/gh/fawazahmed0/quran-api#1/editions/ace-tgkhmahjiddinju.min.json"
},
}
and the link object leads to another JSON data
{
"quran": [
{
"chapter": 1,
"verse": 1,
"text": "«بسم الله الرحمن الرحيم»"
},
{
"chapter": 1,
"verse": 2,
"text": "«الحمد لله» جملة خبرية قصد بها الثناء على الله بمضمونها من أنه تعالى: مالك لجميع الحمد من الخلق أو مستحق لأن يحمدوه، والله علم على المعبود بحق «ربِّ العالمين» أي مالك جميع الخلق من الإنس والجن والملائكة والدواب وغيرهم، وكل منها يُطلق عليه عالم، يقال عالم الإنس وعالم الجن إلى غير ذلك، وغلب في جمعه بالياء والنون أولي العلم على غيرهم، وهو من العلامة لأنه علامة على موجده"
},
]
}
so my question is that how can I integrate a JSON inside another JSON in my app. any tutorial on this can help me a lot?

How to draw a line in a line chart in vega-lite?

I have a curve plotted from index
{
"$schema": "https://vega.github.io/schema/vega-lite/v2.4.json",
"title": {
"text": "Receiver Operating Characteristics - Area Under Curve",
"anchor": "middle",
"fontSize": 16,
"frame": "group",
"offset": 4
},
"data": {
"url" : {
"%context%": true,
"index": "roccurve_index2",
"body": {
"size":10000,
"_source": ["lr_fpr", "lr_tpr"],
}
}
"format": {"property": "hits.hits"},
},
"mark": {
"type": "line",
"point": true
},
"encoding": {
"x": {"field": "_source.lr_fpr", "type": "quantitative", "title":"False Positive Rate"},
"y": {"field": "_source.lr_tpr", "type": "quantitative", "title":"True Positive Rate"}
}
}
the plot looks like
Now i need to draw a base line for base model between 0 and 1 like
Is this possible, and make that as dashed line with legend showing names as Base Model, RF Model
Yes, it is possible using Layered Views.
I'll use the Line Chart example to modify and add another line that's also dashed.
Original chart:
https://vega.github.io/editor/#/examples/vega-lite/line
Here's the modified chart, I used explicit values for the straight line:
https://vega.github.io/editor/#/gist/152fbe5f986ba78e422bb3430628f010/spec.json
Layer Solution
When you use layered view, you can lay multiple lines in the same chart and same x and y axis
"layer" : [
{
//mark #1
},
{
//mark #2
}
]
Dashed Line
Can be achieved using strokeDashproperty. See this example: Line chart with varying stroke dash

Dealing with newlines embedded within strings

I'm working with twitter data which fetched in jsonl form. I've converted it to json and am trying to convert it to a csv (to import into a program which accepts either csv or MySQL). However, some people put forced new lines into their tweets or bios. This is causing the csv file to have multiple lines for entries, often breaking up in the middle of a tweet. I've tried a few of the python json to csv codes floating on github.
The latest attempt I tried:
jq -s "." tiny00subset.jsonl > tiny00subset.json
json2csv -i tiny00subset.json -o tiny00subset.csv
Partial example tweet (json format):
{
"created_at": "Mon Aug 13 10:40:34 +0000 2018",
"id": 1028954459110555600,
"id_str": "1028954459110555649",
"full_text": "Oh well, they deal with it quite well. Like they add numbers and facts and such crazy stuff.\nhttps://REPLACED/DuBGmHCnG8\n#climatechange https://REPLACED/d5IBchM3Uk",
"truncated": false,
"display_text_range": [
0,
131
],
"entities": {
"hashtags": [
{
"text": "climatechange",
"indices": [
117,
131
]
}
],
"symbols": [],
"user_mentions": [],
"urls": [
{
"url": "https://REPLACED/DuBGmHCnG8",
"expanded_url": "https://tamino.wordpress.com/2018/08/08/usa-temperature-can-i-sucker-you/",
"display_url": "tamino.wordpress.com/2018/08/08/usa…",
"indices": [
93,
116
]
},
{
"url": "https://REPLACED/d5IBchM3Uk",
"expanded_url": "https://twitter.com/Tony__Heller/status/1028672939753758720",
"display_url": "twitter.com/Tony__Heller/s…",
"indices": [
132,
155
]
}
]
},
}
CSV Output:
"Mon Aug 13 10:40:34 +0000 2018",1028954459110555600,"1028954459110555649","Oh well, they deal with it quite well. Like they add numbers and facts and such crazy stuff.
https://REPLACED/DuBGmHCnG8
#climatechange https://REPLACED/d5IBchM3Uk",false,"[0,131]","{""hashtags"":[{""text"":""climatechange"",""indices"":[117,131]}],""symbols"":[],""user_mentions"":[],""urls"":[{""url"":""https://REPLACED/DuBGmHCnG8"",""expanded_url"":""https://tamino.wordpress.com/2018/08/08/usa-temperature-can-i-sucker-you/"",""display_url"":""tamino.wordpress.com/2018/08/08/usa…"",""indices"":[93,116]},{""url"":""https://REPLACED/d5IBchM3Uk"",""expanded_url"":""https://twitter.com/Tony__Heller/status/1028672939753758720"",""display_url"":""twitter.com/Tony__Heller/s…"",""indices"":[132,155]}]}","TweetDeck",,,,,,"{""id"":59806323,""id_str"":""59806323"",""name"":""Daniel"",""screen_name"":""sleeksorrow"",""location"":""Karlsruhe, Germany"",""description"":""Politik, IT, Blödsinn und deren Schnittmenge. Ebenfalls: Hochmittelalter Darstellung, Falknerei, Greifvogelschutz - profile picture by #herrkausk"",""url"":""https://REPLACED/E8aNHIhCtg"",""entities"":{""url"":{""urls"":[{""url"":""https://REPLACED/E8aNHIhCtg"",""expanded_url"":""http://sleeksorrow.blogspot.com/"",""display_url"":""sleeksorrow.blogspot.com"",""indices"":[0,23]}]},""description"":{""urls"":[]}},""protected"":false,""followers_count"":572,""friends_count"":392,""listed_count"":47,""created_at"":""Fri Jul 24 15:15:25 +0000 2009"",""favourites_count"":13259,""utc_offset"":null,""time_zone"":null,""geo_enabled"":false,""verified"":false,""statuses_count"":48861,""lang"":null,""contributors_enabled"":false,""is_translator"":false,""is_translation_enabled"":false,""profile_background_color"":""1A1B1F"",""profile_background_image_url"":""http://abs.twimg.com/images/themes/theme9/bg.gif"",""profile_background_image_url_https"":""https://abs.twimg.com/images/themes/theme9/bg.gif"",""profile_background_tile"":false,""profile_image_url"":""http://pbs.twimg.com/profile_images/877219681513480192/1rj4xqpK_normal.jpg"",""profile_image_url_https"":""https://pbs.twimg.com/profile_images/877219681513480192/1rj4xqpK_normal.jpg"",""profile_banner_url"":""https://pbs.twimg.com/profile_banners/59806323/1397029131"",""profile_image_extensions_alt_text"":null,""profile_banner_extensions_alt_text"":null,""profile_link_color"":""2FC2EF"",""profile_sidebar_border_color"":""181A1E"",""profile_sidebar_fill_color"":""252429"",""profile_text_color"":""666666"",""profile_use_background_image"":true,""has_extended_profile"":false,""default_profile"":false,""default_profile_image"":false,""can_media_tag"":true,""followed_by"":false,""following"":false,""follow_request_sent"":false,""notifications"":false,""translator_type"":""none""}",,,,,true,1028672939753758700,"1028672939753758720","{""url"":""https://REPLACED/d5IBchM3Uk"",""expanded"":""https://twitter.com/Tony__Heller/status/1028672939753758720"",""display"":""twitter.com/Tony__Heller/s…""}","{""created_at"":""Sun Aug 12 16:01:55 +0000 2018"",""id"":1028672939753758700,""id_str"":""1028672939753758720"",""full_text"":""#DeanFieldingF1 It is very difficult or impossible for climate alarmists to deal with reality. https://REPLACED/wOJTptxIqH"",""truncated"":false,""display_text_range"":[16,94],""entities"":{""hashtags"":[],""symbols"":[],""user_mentions"":[{""screen_name"":""DeanFieldingF1"",""name"":""Dean Fielding"",""id"":797295219825897500,""id_str"":""797295219825897472"",""indices"":[0,15]}],""urls"":[],""media"":[{""id"":1028672868849090600,""id_str"":""1028672868849090560"",""indices"":[95,118],""media_url"":""http://pbs.twimg.com/media/DkaUhinVAAARrIY.jpg"",""media_url_https"":""https://pbs.twimg.com/media/DkaUhinVAAARrIY.jpg"",""url"":""https://REPLACED/wOJTptxIqH"",""display_url"":""pic.twitter.com/wOJTptxIqH"",""expanded_url"":""https://twitter.com/SteveSGoddard/status/1028672939753758720/photo/1"",""type"":""photo"",""sizes"":{""thumb"":{""w"":150,""h"":150,""resize"":""crop""},""medium"":{""w"":1070,""h"":983,""resize"":""fit""},""large"":{""w"":1070,""h"":983,""resize"":""fit""},""small"":{""w"":680,""h"":625,""resize"":""fit""}},""features"":{""orig"":{""faces"":[]},""medium"":{""faces"":[]},""large"":{""faces"":[]},""small"":{""faces"":[]}}}]},""extended_entities"":{""media"":[{""id"":1028672868849090600,""id_str"":""1028672868849090560"",""indices"":[95,118],""media_url"":""http://pbs.twimg.com/media/DkaUhinVAAARrIY.jpg"",""media_url_https"":""https://pbs.twimg.com/media/DkaUhinVAAARrIY.jpg"",""url"":""https://REPLACED/wOJTptxIqH"",""display_url"":""pic.twitter.com/wOJTptxIqH"",""expanded_url"":""https://twitter.com/SteveSGoddard/status/1028672939753758720/photo/1"",""type"":""photo"",""sizes"":{""thumb"":{""w"":150,""h"":150,""resize"":""crop""},""medium"":{""w"":1070,""h"":983,""resize"":""fit""},""large"":{""w"":1070,""h"":983,""resize"":""fit""},""small"":{""w"":680,""h"":625,""resize"":""fit""}},""features"":{""orig"":{""faces"":[]},""medium"":{""faces"":[]},""large"":{""faces"":[]},""small"":{""faces"":[]}},""ext_alt_text"":null},{""id"":1028672883986333700,""id_str"":""1028672883986333697"",""indices"":[95,118],""media_url"":""http://pbs.twimg.com/media/DkaUibAVAAEaQt0.jpg"",""media_url_https"":""https://pbs.twimg.com/media/DkaUibAVAAEaQt0.jpg"",""url"":""https://REPLACED/wOJTptxIqH"",""display_url"":""pic.twitter.com/wOJTptxIqH"",""expanded_url"":""https://twitter.com/SteveSGoddard/status/1028672939753758720/photo/1"",""type"":""photo"",""sizes"":{""thumb"":{""w"":150,""h"":150,""resize"":""crop""},""medium"":{""w"":1070,""h"":983,""resize"":""fit""},""large"":{""w"":1070,""h"":983,""resize"":""fit""},""small"":{""w"":680,""h"":625,""resize"":""fit""}},""features"":{""orig"":{""faces"":[]},""medium"":{""faces"":[]},""large"":{""faces"":[]},""small"":{""faces"":[]}},""ext_alt_text"":null}]},""source"":""Twitter Web Client"",""in_reply_to_status_id"":1028671170802081800,""in_reply_to_status_id_str"":""1028671170802081793"",""in_reply_to_user_id"":797295219825897500,""in_reply_to_user_id_str"":""797295219825897472"",""in_reply_to_screen_name"":""DeanFieldingF1"",""user"":{""id"":435704007,""id_str"":""435704007"",""name"":""Tony Heller"",""screen_name"":""Tony__Heller"",""location"":""Colorado"",""description"":""https://REPLACED/j5CaDNyIqE"",""url"":""https://REPLACED/Pyn117xXna"",""entities"":{""url"":{""urls"":[{""url"":""https://REPLACED/Pyn117xXna"",""expanded_url"":""http://realclimatescience.com"",""display_url"":""realclimatescience.com"",""indices"":[0,23]}]},""description"":{""urls"":[{""url"":""https://REPLACED/j5CaDNyIqE"",""expanded_url"":""https://realclimatescience.com/who-is-tony-heller/"",""display_url"":""realclimatescience.com/who-is-tony-he…"",""indices"":[0,23]}]}},""protected"":false,""followers_count"":44955,""friends_count"":374,""listed_count"":886,""created_at"":""Tue Dec 13 10:44:34 +0000 2011"",""favourites_count"":3740,""utc_offset"":null,""time_zone"":null,""geo_enabled"":true,""verified"":false,""statuses_count"":165165,""lang"":null,""contributors_enabled"":false,""is_translator"":false,""is_translation_enabled"":false,""profile_background_color"":""185370"",""profile_background_image_url"":""http://abs.twimg.com/images/themes/theme1/bg.png"",""profile_background_image_url_https"":""https://abs.twimg.com/images/themes/theme1/bg.png"",""profile_background_tile"":false,""profile_image_url"":""http://pbs.twimg.com/profile_images/1175541923508916225/0qEi4yIj_normal.jpg"",""profile_image_url_https"":""https://pbs.twimg.com/profile_images/1175541923508916225/0qEi4yIj_normal.jpg"",""profile_banner_url"":""https://pbs.twimg.com/profile_banners/435704007/1469798959"",""profile_image_extensions_alt_text"":null,""profile_banner_extensions_alt_text"":null,""profile_link_color"":""0084B4"",""profile_sidebar_border_color"":""FFFFFF"",""profile_sidebar_fill_color"":""DDEEF6"",""profile_text_color"":""333333"",""profile_use_background_image"":true,""has_extended_profile"":false,""default_profile"":false,""default_profile_image"":false,""can_media_tag"":false,""followed_by"":false,""following"":false,""follow_request_sent"":false,""notifications"":false,""translator_type"":""none""},""geo"":null,""coordinates"":null,""place"":null,""contributors"":null,""is_quote_status"":false,""retweet_count"":16,""favorite_count"":27,""favorited"":false,""retweeted"":false,""possibly_sensitive"":false,""lang"":""en""}",0,0,false,false,false,"en"
starting from
{
"created_at": "Mon Aug 13 10:40:34 +0000 2018",
"id": 1028954459110555600,
"id_str": "1028954459110555649",
"full_text": "Oh well, they deal with it quite well. Like they add numbers and facts and such crazy stuff.\nhttps://REPLACED/DuBGmHCnG8\n#climatechange https://REPLACED/d5IBchM3Uk",
"truncated": false,
"display_text_range": [
0,
131
],
"entities": {
"hashtags": [
{
"text": "climatechange",
"indices": [
117,
131
]
}
],
"symbols": [],
"user_mentions": [],
"urls": [
{
"url": "https://REPLACED/DuBGmHCnG8",
"expanded_url": "https://tamino.wordpress.com/2018/08/08/usa-temperature-can-i-sucker-you/",
"display_url": "tamino.wordpress.com/2018/08/08/usa…",
"indices": [
93,
116
]
},
{
"url": "https://REPLACED/d5IBchM3Uk",
"expanded_url": "https://twitter.com/Tony__Heller/status/1028672939753758720",
"display_url": "twitter.com/Tony__Heller/s…",
"indices": [
132,
155
]
}
]
}
}
and running (it's https://github.com/johnkerl/miller)
mlr --j2c unsparsify input.json >input.csv
you have this kind of output https://gist.github.com/aborruso/6e0361923a3c45b9fe55ebf7590953de#file-output-csv
If you open it as raw you have the carriage return. And a spreasheet read it properly.
Then, using properly the import process you need to use, the \n is not a problem.

Google Maps API Geocode not returning results on passing postal code as a value to address param

On trying to search a particular address by postal code(2000) it does not return the expected formatted address correctly, but whereas on searching using the address(frederiksberg) instead of postal code it returns the expected formatted address correctly.
https://maps.googleapis.com/maps/api/geocode/json?address=2000&components=country:Denmark&key=apikey
https://maps.googleapis.com/maps/api/geocode/json?address=frederiksberg&components=country:Denmark&key=apikey
But for a similar search with address set to postal code(4000) it returns the expected formatted address correctly, url below.
https://maps.googleapis.com/maps/api/geocode/json?address=4000&components=country:Denmark&key=apikey
Please let us know why its not returning the expected formatted address for address set to 2000.
TIA!
We experienced a similar issue with Postcode 2000 in Australia (which is Sydney), returned OK but with Zero_Result returned. All the other postcodes worked fine except 2000
Our initial search was
geocode({
address: "2000 Australia",
region: "AU" })
We solving it by adding "Postcode" before the search
geocode({
address: "Postcode 2000 Australia",
region: "AU" })
The Zip code 2000 matches more than one address. You can get the most common ones this way:
https://geocode.xyz/2000?region=DK
output:
Denmark x,y z: 55.68132,12.52966
🇩🇰
3 Solbjerg Plads, Frederiksberg C, Denmark » Confidence Score: 0.5
Frederiksberg DK 2000 Denmark
Frederiksberg Kommune DK 2000 Denmark
Brønshøj DK 2000 Denmark
Bronshoj DK 2000 Denmark
Frederiksberg C DK 2000 Denmark
Or in json format:
https://geocode.xyz/2000?region=DK&json=1
Json Output:
{
"standard": {
"addresst": "3 Solbjerg Plads",
"stnumber": "3",
"prov": "DK",
"city": "Frederiksberg C",
"countryname": "Denmark",
"postal": "2000",
"confidence": "0.5"
},
"longt": "12.52966",
"alt": {
"loc": [
{
"longt": "12.51635",
"city": "Frederiksberg",
"cc": "6353",
"latt": "55.68239"
},
{
"longt": "12.51704",
"city": "Frederiksberg Kommune",
"cc": "5629",
"latt": "55.68255"
},
{
"longt": "12.50332",
"city": "Bronshoj",
"cc": "2",
"latt": "55.67113"
},
{
"longt": "12.50332",
"city": "Bronshoj",
"cc": "2",
"latt": "55.67113"
},
{
"longt": "12.52966",
"city": "Frederiksberg C",
"cc": "1",
"latt": "55.68132"
}
]
},
"latt": "55.68132"
}

Google Custom search JSON API not returning all the results

I am using the Google custom search api for site -"yeskantipur.com". When I search for the term "site:yeskantipur.com Sony Xperia Sola" on Google search I get a lot of results. But with the API, I get only two results. The result in first position in normal search is not returned by Custom Search. Instead the second result is shown..
Here is the items of output json:
"items": [
{
"kind": "customsearch#result",
"title": "Virgin Mobile",
"htmlTitle": "Virgin Mobile",
"link": "http://www.yeskantipur.com/index.php?route=product/vendor&vendor_id=57",
"displayLink": "www.yeskantipur.com",
"snippet": "SONY XPERIA SOLA. GENERAL 2G Network G.. ... Also known as Sony Ericsson Xperia Nozomi, Sony Ericsson Arc HD .. 40000.00. Ex Tax: Rs.40,000.00 ...",
"htmlSnippet": "\u003cb\u003eSONY XPERIA SOLA\u003c/b\u003e. GENERAL 2G Network G.. \u003cb\u003e...\u003c/b\u003e Also known as Sony Ericsson \u003cbr\u003e Xperia Nozomi, Sony Ericsson Arc HD .. 40000.00. Ex Tax: Rs.40,000.00 \u003cb\u003e...\u003c/b\u003e",
"cacheId": "Zm5BwsKSGxcJ",
"formattedUrl": "www.yeskantipur.com/index.php?route=product/vendor...id...",
"htmlFormattedUrl": "www.yeskantipur.com/index.php?route=product/vendor...id...",
"pagemap": {
"cse_image": [
{
"src": "http://www.yeskantipur.com/image/cache/data/virgin/sony-x8-182x182.jpg"
}
],
"cse_thumbnail": [
{
"width": "145",
"height": "145",
"src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRh7wPGludHnxspronMl2eITUvTqYjUZ0-KSOgDsiVyvywyCVnYT09KpP8"
}
]
}
},
{
"kind": "customsearch#result",
"title": "Sony Ericsson",
"htmlTitle": "\u003cb\u003eSony\u003c/b\u003e Ericsson",
"link": "http://www.yeskantipur.com/index.php?route=product/category&path=106",
"displayLink": "www.yeskantipur.com",
"snippet": "Sony Xperia Neo L. Also known as Sony MT25i. .. Rs.23,500.00. Ex Tax: Rs. 23,500.00. Add to Bag. Add to Wish List. Add to Compare. Sony Xperai Sola ...",
"htmlSnippet": "\u003cb\u003eSony Xperia\u003c/b\u003e Neo L. Also known as \u003cb\u003eSony\u003c/b\u003e MT25i. .. Rs.23,500.00. Ex Tax: Rs.\u003cbr\u003e 23,500.00. Add to Bag. Add to Wish List. Add to Compare. \u003cb\u003eSony\u003c/b\u003e Xperai \u003cb\u003eSola\u003c/b\u003e \u003cb\u003e...\u003c/b\u003e",
"cacheId": "k_N9tKXWitYJ",
"formattedUrl": "www.yeskantipur.com/index.php?route=product/category&path...",
"htmlFormattedUrl": "www.yeskantipur.com/index.php?route=product/category&path...",
"pagemap": {
"cse_image": [
{
"src": "http://www.yeskantipur.com/image/cache/data/ctv-mobile/1-180x180.jpg"
}
],
"cse_thumbnail": [
{
"width": "144",
"height": "144",
"src": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcRkJbvtpWJeEFS4E9sCXi-tvnFa-20T3YOzF6v6UDhDNYBpep1TWhoaSYMM"
}
]