{
  "id": 21397,
  "title": "Parsing JSON",
  "url": "/competitions/avito-duplicate-ads-detection/discussion/21397",
  "author_name": "",
  "post_date": "2016-06-02T22:07:08.683Z",
  "votes": 2,
  "comment_count": 15,
  "views": 2354,
  "content": "<p>I tried out parsing the russian text from the JSON in R... without luck. Tried packages jsonlite and RJSONIO.  Anyone get that working, or is python required ?</p>",
  "messages": [
    {
      "id": "122303",
      "postDate": "06/02/2016 22:07:08",
      "content": "<p>I tried out parsing the russian text from the JSON in R... without luck. Tried packages jsonlite and RJSONIO.  Anyone get that working, or is python required ?</p>",
      "rawMarkdown": "I tried out parsing the russian text from the JSON in R... without luck. Tried packages jsonlite and RJSONIO.  Anyone get that working, or is python required ?",
      "votes": null
    },
    {
      "id": "122356",
      "postDate": "06/03/2016 09:42:40",
      "content": "<p>Do you have Libre Office installed?</p>\n\n<p>If you open a CSV in Libre Office, it shows a window for detecting the encoding, the separator, etc. </p>\n\n<p>Anyhow, <code>ItemInfo_train.csv</code> has clearly been encoded in UTF-8. If you look at the attrsJSON column, you can see that it is perfectly valid JSON, it looks like the examples from the <a href=\"https://cran.r-project.org/web/packages/RJSONIO/RJSONIO.pdf\">RJSONIO vignette</a>.</p>\n\n<p>I never used RJOSNIO, but it looks like you are giving the wrong encoding to the <code>encoding</code> parameter.</p>\n\n<p>Please provide an example of you using RJOSION or whatever tool you use.</p>",
      "rawMarkdown": "Do you have Libre Office installed?\r\n\r\nIf you open a CSV in Libre Office, it shows a window for detecting the encoding, the separator, etc. \r\n\r\nAnyhow, `ItemInfo_train.csv` has clearly been encoded in UTF-8. If you look at the attrsJSON column, you can see that it is perfectly valid JSON, it looks like the examples from the [RJSONIO vignette](https://cran.r-project.org/web/packages/RJSONIO/RJSONIO.pdf).\r\n\r\nI never used RJOSNIO, but it looks like you are giving the wrong encoding to the `encoding` parameter.\r\n\r\nPlease provide an example of you using RJOSION or whatever tool you use.",
      "votes": null
    },
    {
      "id": "122360",
      "postDate": "06/03/2016 10:39:25",
      "content": "<p>Try this code:</p>\n\n<pre><code>library(readr)\nlibrary(stringi)\nlibrary(jsonlite)\n\n# Read Items_Train\nitemInfoTrain &lt;- read_csv(&quot;../input/ItemInfo_train.csv&quot;)\n\n# Convert cyrillic to latin (be patient)\nattrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON, &quot;cyrillic-latin&quot;)\n\n# Extract JSON into a list\nlistJSON &lt;- sapply(attrsJSONLatin,fromJSON)\n\nprint(listJSON[[1]])\nprint(listJSON[[2]])\n</code></pre>\n\n<p>Regards</p>",
      "rawMarkdown": "Try this code:\r\n\r\n\r\n\r\n    library(readr)\r\n    library(stringi)\r\n    library(jsonlite)\r\n    \r\n    # Read Items_Train\r\n    itemInfoTrain <- read_csv(\"../input/ItemInfo_train.csv\")\r\n\r\n    # Convert cyrillic to latin (be patient)\r\n    attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON, \"cyrillic-latin\")\r\n\r\n    # Extract JSON into a list\r\n    listJSON <- sapply(attrsJSONLatin,fromJSON)\r\n    \r\n    print(listJSON[[1]])\r\n    print(listJSON[[2]])\r\n\r\n\r\n\r\n\r\nRegards",
      "votes": null
    },
    {
      "id": "122378",
      "postDate": "06/03/2016 14:47:12",
      "content": "<p>Thank you very much F.J. (and Ricardo) for the help. This worked really well - I had spent about 3 hours on this before :) </p>\n\n<pre><code>&gt; library(readr)\n&gt; library(stringi)\n&gt; library(jsonlite)\n&gt; itemInfoTrain &lt;- read_csv(&quot;ItemInfo_train.csv&quot;, n_max = 3)\n&gt; attrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON, &quot;cyrillic-latin&quot;) \n    &gt; listJSON &lt;- sapply(attrsJSONLatin,fromJSON) \n    &gt; print(listJSON[[1]])\n    $`Vid tehniki`\n[1] &quot;Gruzoviki&quot;\n\n&gt; print(names(listJSON[[1]]))\n[1] &quot;Vid tehniki&quot;\n&gt; \n&gt; print(listJSON)\n$`{&quot;Vid tehniki&quot;:&quot;Gruzoviki&quot;}`\n    $`{&quot;Vid tehniki&quot;:&quot;Gruzoviki&quot;}`$`Vid tehniki`\n[1] &quot;Gruzoviki&quot;\n\n\n$`{&quot;Vid tehniki&quot;:&quot;Motocikly&quot;, &quot;Vid motocikla&quot;:&quot;Sportivnye&quot;}`\n    $`{&quot;Vid tehniki&quot;:&quot;Motocikly&quot;, &quot;Vid motocikla&quot;:&quot;Sportivnye&quot;}`$`Vid tehniki`\n[1] &quot;Motocikly&quot;\n\n$`{&quot;Vid tehniki&quot;:&quot;Motocikly&quot;, &quot;Vid motocikla&quot;:&quot;Sportivnye&quot;}`$`Vid motocikla`\n[1] &quot;Sportivnye&quot;\n\n\n$`{&quot;Vid telefona&quot;:&quot;iPhone&quot;}`\n    $`{&quot;Vid telefona&quot;:&quot;iPhone&quot;}`$`Vid telefona`\n[1] &quot;iPhone&quot;\n</code></pre>",
      "rawMarkdown": "Thank you very much F.J. (and Ricardo) for the help. This worked really well - I had spent about 3 hours on this before :) \r\n\r\n\r\n    > library(readr)\r\n    > library(stringi)\r\n    > library(jsonlite)\r\n    > itemInfoTrain <- read_csv(\"ItemInfo_train.csv\", n_max = 3)\r\n    > attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON, \"cyrillic-latin\") \r\n    > listJSON <- sapply(attrsJSONLatin,fromJSON) \r\n    > print(listJSON[[1]])\r\n    $`Vid tehniki`\r\n    [1] \"Gruzoviki\"\r\n    \r\n    > print(names(listJSON[[1]]))\r\n    [1] \"Vid tehniki\"\r\n    > \r\n    > print(listJSON)\r\n    $`{\"Vid tehniki\":\"Gruzoviki\"}`\r\n    $`{\"Vid tehniki\":\"Gruzoviki\"}`$`Vid tehniki`\r\n    [1] \"Gruzoviki\"\r\n    \r\n    \r\n    $`{\"Vid tehniki\":\"Motocikly\", \"Vid motocikla\":\"Sportivnye\"}`\r\n    $`{\"Vid tehniki\":\"Motocikly\", \"Vid motocikla\":\"Sportivnye\"}`$`Vid tehniki`\r\n    [1] \"Motocikly\"\r\n    \r\n    $`{\"Vid tehniki\":\"Motocikly\", \"Vid motocikla\":\"Sportivnye\"}`$`Vid motocikla`\r\n    [1] \"Sportivnye\"\r\n    \r\n    \r\n    $`{\"Vid telefona\":\"iPhone\"}`\r\n    $`{\"Vid telefona\":\"iPhone\"}`$`Vid telefona`\r\n    [1] \"iPhone\"",
      "votes": null
    },
    {
      "id": "122389",
      "postDate": "06/03/2016 16:37:09",
      "content": "<p>You're welcome...</p>",
      "rawMarkdown": "You're welcome...",
      "votes": null
    },
    {
      "id": "122477",
      "postDate": "06/04/2016 13:14:55",
      "content": "<p>Hello Thanks for the question and answers,</p>\n\n<p>listJSON &lt;- sapply(attrsJSONLatin,fromJSON) is returning an error  Error: parse error: premature EOF</p>\n\n<pre><code>                 (right here) ------^\n</code></pre>\n\n<p>Is anyone of you facing this problem?</p>\n\n<p>Thank you.</p>",
      "rawMarkdown": "Hello Thanks for the question and answers,\r\n\r\n  listJSON <- sapply(attrsJSONLatin,fromJSON) is returning an error  Error: parse error: premature EOF\r\n                                       \r\n                     (right here) ------^\r\n\r\nIs anyone of you facing this problem?\r\n\r\nThank you.",
      "votes": null
    },
    {
      "id": "122507",
      "postDate": "06/04/2016 17:42:32",
      "content": "<p>Are you transforming cyrillic to latin characters before this command? The previous codes should work...</p>",
      "rawMarkdown": "Are you transforming cyrillic to latin characters before this command? The previous codes should work...",
      "votes": null
    },
    {
      "id": "122509",
      "postDate": "06/04/2016 18:05:30",
      "content": "<p>[quote=F.J.Martinez-de-Pison;122507]</p>\n\n<p>Are you transforming cyrillic to latin characters before this command? The previous codes should work...</p>\n\n<p>[/quote]</p>\n\n<p>yes I am using the full code above, what I have noticed is the error is coming when JSON is empty string &quot;&quot;. The first empty string is at 35th position. </p>\n\n<p>When I just select 1:34, I am not getting any error.</p>\n\n<p>itemInfoTrain &lt;- read_csv(&quot;ItemInfo_train.csv&quot;)\n  attrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON[1:34], &quot;cyrillic-latin&quot;) \n  listJSON &lt;- sapply(attrsJSONLatin,fromJSON) \n  print(listJSON[[1]])</p>",
      "rawMarkdown": "[quote=F.J.Martinez-de-Pison;122507]\r\n\r\nAre you transforming cyrillic to latin characters before this command? The previous codes should work...\r\n\r\n[/quote]\r\n\r\nyes I am using the full code above, what I have noticed is the error is coming when JSON is empty string \"\". The first empty string is at 35th position. \r\n\r\nWhen I just select 1:34, I am not getting any error.\r\n\r\nitemInfoTrain <- read_csv(\"ItemInfo_train.csv\")\r\n  attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON[1:34], \"cyrillic-latin\") \r\n  listJSON <- sapply(attrsJSONLatin,fromJSON) \r\n  print(listJSON[[1]])",
      "votes": null
    },
    {
      "id": "122519",
      "postDate": "06/04/2016 19:18:55",
      "content": "<p>Last day, the previous code worked for me, but now I have the same problem. </p>\n\n<p>I have just solved the problem changing NAs with &quot;{}&quot;:</p>\n\n<pre><code>library(readr)\nlibrary(stringi)\nlibrary(jsonlite)\n\n# Read Items_Train\nitemInfoTrain &lt;- read_csv(&quot;ItemInfo_train.csv&quot;,n_max = 100)\n# Convert cyrillic to latin\nattrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON, &quot;cyrillic-latin&quot;)\n\n# Change NAs to &quot;{}&quot;\nprint(attrsJSONLatin[35])\nattrsJSONLatin[is.na(attrsJSONLatin)] &lt;- &quot;{}&quot;\n\n# Convert JSON\nlistJSON &lt;- sapply(attrsJSONLatin,fromJSON)\nprint(listJSON[[35]])\n</code></pre>\n\n<p>Regards</p>",
      "rawMarkdown": "Last day, the previous code worked for me, but now I have the same problem. \r\n\r\nI have just solved the problem changing NAs with \"{}\":\r\n\r\n\r\n    library(readr)\r\n    library(stringi)\r\n    library(jsonlite)\r\n    \r\n    # Read Items_Train\r\n    itemInfoTrain <- read_csv(\"ItemInfo_train.csv\",n_max = 100)\r\n    # Convert cyrillic to latin\r\n    attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON, \"cyrillic-latin\")\r\n    \r\n    # Change NAs to \"{}\"\r\n    print(attrsJSONLatin[35])\r\n    attrsJSONLatin[is.na(attrsJSONLatin)] <- \"{}\"\r\n    \r\n    # Convert JSON\r\n    listJSON <- sapply(attrsJSONLatin,fromJSON)\r\n    print(listJSON[[35]])\r\n\r\n\r\n\r\nRegards",
      "votes": null
    },
    {
      "id": "122553",
      "postDate": "06/05/2016 03:14:18",
      "content": "<p>[quote=F.J.Martinez-de-Pison;122519]</p>\n\n<p>Last day, the previous code worked for me, but now I have the same problem. </p>\n\n<p>I have just solved the problem changing NAs with &quot;{}&quot;:</p>\n\n<pre><code>library(readr)\nlibrary(stringi)\nlibrary(jsonlite)\n\n# Read Items_Train\nitemInfoTrain &lt;- read_csv(&quot;ItemInfo_train.csv&quot;,n_max = 100)\n# Convert cyrillic to latin\nattrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON, &quot;cyrillic-latin&quot;)\n\n# Change NAs to &quot;{}&quot;\nprint(attrsJSONLatin[35])\nattrsJSONLatin[is.na(attrsJSONLatin)] &lt;- &quot;{}&quot;\n\n# Convert JSON\nlistJSON &lt;- sapply(attrsJSONLatin,fromJSON)\nprint(listJSON[[35]])\n</code></pre>\n\n<p>Regards</p>\n\n<p>[/quote]</p>\n\n<p>Hello Thanks, when I replaced empty string as below it is working.</p>\n\n<p>attrsJSONLatin[attrsJSONLatin == &quot;&quot;] &lt;- &quot;{}&quot;</p>",
      "rawMarkdown": "[quote=F.J.Martinez-de-Pison;122519]\r\n\r\nLast day, the previous code worked for me, but now I have the same problem. \r\n\r\nI have just solved the problem changing NAs with \"{}\":\r\n\r\n\r\n    library(readr)\r\n    library(stringi)\r\n    library(jsonlite)\r\n    \r\n    # Read Items_Train\r\n    itemInfoTrain <- read_csv(\"ItemInfo_train.csv\",n_max = 100)\r\n    # Convert cyrillic to latin\r\n    attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON, \"cyrillic-latin\")\r\n    \r\n    # Change NAs to \"{}\"\r\n    print(attrsJSONLatin[35])\r\n    attrsJSONLatin[is.na(attrsJSONLatin)] <- \"{}\"\r\n    \r\n    # Convert JSON\r\n    listJSON <- sapply(attrsJSONLatin,fromJSON)\r\n    print(listJSON[[35]])\r\n\r\n\r\n\r\nRegards\r\n\r\n[/quote]\r\n\r\nHello Thanks, when I replaced empty string as below it is working.\r\n\r\n  attrsJSONLatin[attrsJSONLatin == \"\"] <- \"{}\"",
      "votes": null
    },
    {
      "id": "122687",
      "postDate": "06/06/2016 14:06:26",
      "content": "<p>If it is not too much to ask, how are you extracting key and value pairs from the list. Thanks</p>",
      "rawMarkdown": "If it is not too much to ask, how are you extracting key and value pairs from the list. Thanks",
      "votes": null
    },
    {
      "id": "122797",
      "postDate": "06/07/2016 07:40:50",
      "content": "<p>Sorry for the late response...</p>\n\n<p>You can paste keys and values using unlist() function:</p>\n\n<pre><code>print(listJSON[[100]])\nkeys &lt;- sapply(listJSON,function(x) return(paste0(unlist(names(x)),collapse=&quot; - &quot;)))\nnames(keys) &lt;- NULL\nvalues &lt;- sapply(listJSON,function(x) return(paste0(unlist(x),collapse=&quot; - &quot;)))\nnames(values) &lt;- NULL\nprint(keys[100])\nprint(values[100])\n</code></pre>\n\n<p>regards</p>",
      "rawMarkdown": "Sorry for the late response...\r\n\r\nYou can paste keys and values using unlist() function:\r\n\r\n    print(listJSON[[100]])\r\n    keys <- sapply(listJSON,function(x) return(paste0(unlist(names(x)),collapse=\" - \")))\r\n    names(keys) <- NULL\r\n    values <- sapply(listJSON,function(x) return(paste0(unlist(x),collapse=\" - \")))\r\n    names(values) <- NULL\r\n    print(keys[100])\r\n    print(values[100])\r\n\r\nregards",
      "votes": null
    },
    {
      "id": "122805",
      "postDate": "06/07/2016 11:11:55",
      "content": "<p>[quote=F.J.Martinez-de-Pison;122797]</p>\n\n<p>Sorry for the late response...</p>\n\n<p>You can paste keys and values using unlist() function:</p>\n\n<pre><code>print(listJSON[[100]])\nkeys &lt;- sapply(listJSON,function(x) return(paste0(unlist(names(x)),collapse=&quot; - &quot;)))\nnames(keys) &lt;- NULL\nvalues &lt;- sapply(listJSON,function(x) return(paste0(unlist(x),collapse=&quot; - &quot;)))\nnames(values) &lt;- NULL\nprint(keys[100])\nprint(values[100])\n</code></pre>\n\n<p>regards</p>\n\n<p>[/quote]</p>\n\n<p>Thanks.</p>",
      "rawMarkdown": "[quote=F.J.Martinez-de-Pison;122797]\r\n\r\nSorry for the late response...\r\n\r\nYou can paste keys and values using unlist() function:\r\n\r\n    print(listJSON[[100]])\r\n    keys <- sapply(listJSON,function(x) return(paste0(unlist(names(x)),collapse=\" - \")))\r\n    names(keys) <- NULL\r\n    values <- sapply(listJSON,function(x) return(paste0(unlist(x),collapse=\" - \")))\r\n    names(values) <- NULL\r\n    print(keys[100])\r\n    print(values[100])\r\n\r\nregards\r\n\r\n[/quote]\r\n\r\nThanks.",
      "votes": null
    },
    {
      "id": "125212",
      "postDate": "06/27/2016 17:20:33",
      "content": "<p>Anyone had issue parsing attrsJSONLatin[125620]?</p>\n\n<pre><code>Error in parse_string(txt, bigint_as_char) : \n  parse error: after key and value, inside map, I expect ',' or '}'\n          &#58928;&#23049;&#23130;&#20561;&#29788;?&#37712;&#27410;&#23025;&#28766;?&#38323;&#9538;&#28282;&quot; 61*&quot;}\n                     (right here) ------^\n\n&gt; attrsJSONLatin[125620]\n[1] &quot;{\\&quot;&#23389;&#25032;&#38156; &#33455;&#26012;&#35095;&#35103;&#32961;&#35874;&#26800;&#34218;&#25032;&#35103;\\&quot;:\\&quot;&#23567;&#20889;&#37034;&#23633;\\&quot;, \\&quot;&#34979;&#33455;&#35874;&#25032;&#35092;&#26800;&#35083;&#35084;&#32961;&#33455; &#27899;&#33455;&#23633;&#34218;&#37034;&#35084;\\&quot;:\\&quot;1\\&quot;, \\&quot;&#23567;&#35081;&#33455;&#27899; &#37034;&#35081;&#26800;&#34218;&#20889;&#35096;\\&quot;:\\&quot;&#34983;&#37034; &#20889;&#35874;&#25032;&#35084;&#26800;&#35874;&#35100;&#34218;&#35096;&#27844; &#35083;&#35081;&#33455;&#27899;\\&quot;, \\&quot;&#34979;&#33455;&#23633;&#25032;&#35083;&#35083;&#25032;&#35103;\\&quot;:\\&quot;&#34983;&#26800;&#35084;\\&quot;, \\&quot;&#34975;&#37034;&#35874;&#33455;&#35856;\\&quot;:\\&quot;0\\&quot;, \\&quot;&#21327;&#35084;&#37034;&#21368;\\&quot;:\\&quot;7\\&quot;, \\&quot;&#21327;&#35084;&#37034;&#21368;&#26800;&#27844; &#32961; &#20889;&#33455;&#23633;&#26800;\\&quot;:\\&quot;9\\&quot;, \\&quot;&#23389;&#25032;&#38156; &#20889;&#33455;&#23633;&#37034;\\&quot;:\\&quot;&#34985;&#37034;&#34218;&#26800;&#35874;&#35100;&#34218;&#35096;&#27844;\\&quot;, \\&quot;&#34985;&#35874;&#33455;&#35094;&#37034;&#20889;&#35100;\\&quot;:\\&quot;40\\&quot;, \\&quot;&#34967;&#20889;&#35081;&#26800;&#35083;\\&quot;:\\&quot;&#35083;&#35084;&#35085;&#20889;&#26800;&#34218;&#35092;&#26800;&#35083;&#27899;&#37034;&#35103; &#20889;&#33455;&#23633; &#37417;&#26422;\\&quot; 61*\\&quot;}&quot;\n</code></pre>",
      "rawMarkdown": "Anyone had issue parsing attrsJSONLatin[125620]?\r\n\r\n    Error in parse_string(txt, bigint_as_char) : \r\n      parse error: after key and value, inside map, I expect ',' or '}'\r\n              娉婚偑瑜?鍐欒姱灞?閳╂湺\" 61*\"}\r\n                         (right here) ------^\r\n    \r\n    > attrsJSONLatin[125620]\r\n    [1] \"{\\\"孝懈锌 芯斜褗褟胁谢械薪懈褟\\\":\\\"小写邪屑\\\", \\\"袣芯谢懈褔械褋褌胁芯 泻芯屑薪邪褌\\\":\\\"1\\\", \\\"小褉芯泻 邪褉械薪写褘\\\":\\\"袧邪 写谢懈褌械谢褜薪褘泄 褋褉芯泻\\\", \\\"袣芯屑懈褋褋懈褟\\\":\\\"袧械褌\\\", \\\"袟邪谢芯谐\\\":\\\"0\\\", \\\"协褌邪卸\\\":\\\"7\\\", \\\"协褌邪卸械泄 胁 写芯屑械\\\":\\\"9\\\", \\\"孝懈锌 写芯屑邪\\\":\\\"袩邪薪械谢褜薪褘泄\\\", \\\"袩谢芯褖邪写褜\\\":\\\"40\\\", \\\"袗写褉械褋\\\":\\\"褋褌褍写械薪褔械褋泻邪褟 写芯屑 鈩朶\\\" 61*\\\"}\"",
      "votes": null
    },
    {
      "id": "125213",
      "postDate": "06/27/2016 17:22:19",
      "content": "<p>Doesn't look Russian to me </p>",
      "rawMarkdown": "Doesn't look Russian to me",
      "votes": null
    },
    {
      "id": "125459",
      "postDate": "06/29/2016 16:12:08",
      "content": "<p>Are you reading it as Russian? I had to set , Sys.setlocale('LC_ALL', 'russian'); and encoding=&quot;UTF-8&quot; to make R read Russian correctly</p>\n\n<p>[quote=yilisg;125212]</p>\n\n<p>Anyone had issue parsing attrsJSONLatin[125620]?&#27844;\\&quot;, \\&quot;&#34985;&#35874;&#33455;&#35094;&#37034;&#20889;&#35100;\\&quot;:\\&quot;40\\&quot;, \\&quot;&#34967;&#20889;&#35081;&#26800;&#35083;\\&quot;:\\&quot;&#35083;&#35084;&#35085;&#20889;&#26800;&#34218;&#35092;&#26800;&#35083;&#27899;&#37034;&#35103; &#20889;&#33455;&#23633; &#37417;&#26422;\\&quot; 61*\\&quot;}&quot;</p>\n\n<p>[/quote]</p>",
      "rawMarkdown": "Are you reading it as Russian? I had to set , Sys.setlocale('LC_ALL', 'russian'); and encoding=\"UTF-8\" to make R read Russian correctly\r\n\r\n[quote=yilisg;125212]\r\n\r\nAnyone had issue parsing attrsJSONLatin[125620]?泄\\\", \\\"袩谢芯褖邪写褜\\\":\\\"40\\\", \\\"袗写褉械褋\\\":\\\"褋褌褍写械薪褔械褋泻邪褟 写芯屑 鈩朶\\\" 61*\\\"}\"\r\n\r\n[/quote]",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 122356,
      "author_name": "rpmcruz",
      "author_url": "",
      "post_date": "06/03/2016 09:42:40",
      "content": "<p>Do you have Libre Office installed?</p>\n\n<p>If you open a CSV in Libre Office, it shows a window for detecting the encoding, the separator, etc. </p>\n\n<p>Anyhow, <code>ItemInfo_train.csv</code> has clearly been encoded in UTF-8. If you look at the attrsJSON column, you can see that it is perfectly valid JSON, it looks like the examples from the <a href=\"https://cran.r-project.org/web/packages/RJSONIO/RJSONIO.pdf\">RJSONIO vignette</a>.</p>\n\n<p>I never used RJOSNIO, but it looks like you are giving the wrong encoding to the <code>encoding</code> parameter.</p>\n\n<p>Please provide an example of you using RJOSION or whatever tool you use.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122360,
      "author_name": "jpison",
      "author_url": "",
      "post_date": "06/03/2016 10:39:25",
      "content": "<p>Try this code:</p>\n\n<pre><code>library(readr)\nlibrary(stringi)\nlibrary(jsonlite)\n\n# Read Items_Train\nitemInfoTrain &lt;- read_csv(&quot;../input/ItemInfo_train.csv&quot;)\n\n# Convert cyrillic to latin (be patient)\nattrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON, &quot;cyrillic-latin&quot;)\n\n# Extract JSON into a list\nlistJSON &lt;- sapply(attrsJSONLatin,fromJSON)\n\nprint(listJSON[[1]])\nprint(listJSON[[2]])\n</code></pre>\n\n<p>Regards</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122378,
      "author_name": "darraghdog",
      "author_url": "",
      "post_date": "06/03/2016 14:47:12",
      "content": "<p>Thank you very much F.J. (and Ricardo) for the help. This worked really well - I had spent about 3 hours on this before :) </p>\n\n<pre><code>&gt; library(readr)\n&gt; library(stringi)\n&gt; library(jsonlite)\n&gt; itemInfoTrain &lt;- read_csv(&quot;ItemInfo_train.csv&quot;, n_max = 3)\n&gt; attrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON, &quot;cyrillic-latin&quot;) \n    &gt; listJSON &lt;- sapply(attrsJSONLatin,fromJSON) \n    &gt; print(listJSON[[1]])\n    $`Vid tehniki`\n[1] &quot;Gruzoviki&quot;\n\n&gt; print(names(listJSON[[1]]))\n[1] &quot;Vid tehniki&quot;\n&gt; \n&gt; print(listJSON)\n$`{&quot;Vid tehniki&quot;:&quot;Gruzoviki&quot;}`\n    $`{&quot;Vid tehniki&quot;:&quot;Gruzoviki&quot;}`$`Vid tehniki`\n[1] &quot;Gruzoviki&quot;\n\n\n$`{&quot;Vid tehniki&quot;:&quot;Motocikly&quot;, &quot;Vid motocikla&quot;:&quot;Sportivnye&quot;}`\n    $`{&quot;Vid tehniki&quot;:&quot;Motocikly&quot;, &quot;Vid motocikla&quot;:&quot;Sportivnye&quot;}`$`Vid tehniki`\n[1] &quot;Motocikly&quot;\n\n$`{&quot;Vid tehniki&quot;:&quot;Motocikly&quot;, &quot;Vid motocikla&quot;:&quot;Sportivnye&quot;}`$`Vid motocikla`\n[1] &quot;Sportivnye&quot;\n\n\n$`{&quot;Vid telefona&quot;:&quot;iPhone&quot;}`\n    $`{&quot;Vid telefona&quot;:&quot;iPhone&quot;}`$`Vid telefona`\n[1] &quot;iPhone&quot;\n</code></pre>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122389,
      "author_name": "jpison",
      "author_url": "",
      "post_date": "06/03/2016 16:37:09",
      "content": "<p>You're welcome...</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122477,
      "author_name": "chinta",
      "author_url": "",
      "post_date": "06/04/2016 13:14:55",
      "content": "<p>Hello Thanks for the question and answers,</p>\n\n<p>listJSON &lt;- sapply(attrsJSONLatin,fromJSON) is returning an error  Error: parse error: premature EOF</p>\n\n<pre><code>                 (right here) ------^\n</code></pre>\n\n<p>Is anyone of you facing this problem?</p>\n\n<p>Thank you.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122507,
      "author_name": "jpison",
      "author_url": "",
      "post_date": "06/04/2016 17:42:32",
      "content": "<p>Are you transforming cyrillic to latin characters before this command? The previous codes should work...</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122509,
      "author_name": "chinta",
      "author_url": "",
      "post_date": "06/04/2016 18:05:30",
      "content": "<p>[quote=F.J.Martinez-de-Pison;122507]</p>\n\n<p>Are you transforming cyrillic to latin characters before this command? The previous codes should work...</p>\n\n<p>[/quote]</p>\n\n<p>yes I am using the full code above, what I have noticed is the error is coming when JSON is empty string &quot;&quot;. The first empty string is at 35th position. </p>\n\n<p>When I just select 1:34, I am not getting any error.</p>\n\n<p>itemInfoTrain &lt;- read_csv(&quot;ItemInfo_train.csv&quot;)\n  attrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON[1:34], &quot;cyrillic-latin&quot;) \n  listJSON &lt;- sapply(attrsJSONLatin,fromJSON) \n  print(listJSON[[1]])</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122519,
      "author_name": "jpison",
      "author_url": "",
      "post_date": "06/04/2016 19:18:55",
      "content": "<p>Last day, the previous code worked for me, but now I have the same problem. </p>\n\n<p>I have just solved the problem changing NAs with &quot;{}&quot;:</p>\n\n<pre><code>library(readr)\nlibrary(stringi)\nlibrary(jsonlite)\n\n# Read Items_Train\nitemInfoTrain &lt;- read_csv(&quot;ItemInfo_train.csv&quot;,n_max = 100)\n# Convert cyrillic to latin\nattrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON, &quot;cyrillic-latin&quot;)\n\n# Change NAs to &quot;{}&quot;\nprint(attrsJSONLatin[35])\nattrsJSONLatin[is.na(attrsJSONLatin)] &lt;- &quot;{}&quot;\n\n# Convert JSON\nlistJSON &lt;- sapply(attrsJSONLatin,fromJSON)\nprint(listJSON[[35]])\n</code></pre>\n\n<p>Regards</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122553,
      "author_name": "chinta",
      "author_url": "",
      "post_date": "06/05/2016 03:14:18",
      "content": "<p>[quote=F.J.Martinez-de-Pison;122519]</p>\n\n<p>Last day, the previous code worked for me, but now I have the same problem. </p>\n\n<p>I have just solved the problem changing NAs with &quot;{}&quot;:</p>\n\n<pre><code>library(readr)\nlibrary(stringi)\nlibrary(jsonlite)\n\n# Read Items_Train\nitemInfoTrain &lt;- read_csv(&quot;ItemInfo_train.csv&quot;,n_max = 100)\n# Convert cyrillic to latin\nattrsJSONLatin &lt;- stri_trans_general(itemInfoTrain$attrsJSON, &quot;cyrillic-latin&quot;)\n\n# Change NAs to &quot;{}&quot;\nprint(attrsJSONLatin[35])\nattrsJSONLatin[is.na(attrsJSONLatin)] &lt;- &quot;{}&quot;\n\n# Convert JSON\nlistJSON &lt;- sapply(attrsJSONLatin,fromJSON)\nprint(listJSON[[35]])\n</code></pre>\n\n<p>Regards</p>\n\n<p>[/quote]</p>\n\n<p>Hello Thanks, when I replaced empty string as below it is working.</p>\n\n<p>attrsJSONLatin[attrsJSONLatin == &quot;&quot;] &lt;- &quot;{}&quot;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122687,
      "author_name": "chinta",
      "author_url": "",
      "post_date": "06/06/2016 14:06:26",
      "content": "<p>If it is not too much to ask, how are you extracting key and value pairs from the list. Thanks</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122797,
      "author_name": "jpison",
      "author_url": "",
      "post_date": "06/07/2016 07:40:50",
      "content": "<p>Sorry for the late response...</p>\n\n<p>You can paste keys and values using unlist() function:</p>\n\n<pre><code>print(listJSON[[100]])\nkeys &lt;- sapply(listJSON,function(x) return(paste0(unlist(names(x)),collapse=&quot; - &quot;)))\nnames(keys) &lt;- NULL\nvalues &lt;- sapply(listJSON,function(x) return(paste0(unlist(x),collapse=&quot; - &quot;)))\nnames(values) &lt;- NULL\nprint(keys[100])\nprint(values[100])\n</code></pre>\n\n<p>regards</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122805,
      "author_name": "chinta",
      "author_url": "",
      "post_date": "06/07/2016 11:11:55",
      "content": "<p>[quote=F.J.Martinez-de-Pison;122797]</p>\n\n<p>Sorry for the late response...</p>\n\n<p>You can paste keys and values using unlist() function:</p>\n\n<pre><code>print(listJSON[[100]])\nkeys &lt;- sapply(listJSON,function(x) return(paste0(unlist(names(x)),collapse=&quot; - &quot;)))\nnames(keys) &lt;- NULL\nvalues &lt;- sapply(listJSON,function(x) return(paste0(unlist(x),collapse=&quot; - &quot;)))\nnames(values) &lt;- NULL\nprint(keys[100])\nprint(values[100])\n</code></pre>\n\n<p>regards</p>\n\n<p>[/quote]</p>\n\n<p>Thanks.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 125212,
      "author_name": "yilihome",
      "author_url": "",
      "post_date": "06/27/2016 17:20:33",
      "content": "<p>Anyone had issue parsing attrsJSONLatin[125620]?</p>\n\n<pre><code>Error in parse_string(txt, bigint_as_char) : \n  parse error: after key and value, inside map, I expect ',' or '}'\n          &#58928;&#23049;&#23130;&#20561;&#29788;?&#37712;&#27410;&#23025;&#28766;?&#38323;&#9538;&#28282;&quot; 61*&quot;}\n                     (right here) ------^\n\n&gt; attrsJSONLatin[125620]\n[1] &quot;{\\&quot;&#23389;&#25032;&#38156; &#33455;&#26012;&#35095;&#35103;&#32961;&#35874;&#26800;&#34218;&#25032;&#35103;\\&quot;:\\&quot;&#23567;&#20889;&#37034;&#23633;\\&quot;, \\&quot;&#34979;&#33455;&#35874;&#25032;&#35092;&#26800;&#35083;&#35084;&#32961;&#33455; &#27899;&#33455;&#23633;&#34218;&#37034;&#35084;\\&quot;:\\&quot;1\\&quot;, \\&quot;&#23567;&#35081;&#33455;&#27899; &#37034;&#35081;&#26800;&#34218;&#20889;&#35096;\\&quot;:\\&quot;&#34983;&#37034; &#20889;&#35874;&#25032;&#35084;&#26800;&#35874;&#35100;&#34218;&#35096;&#27844; &#35083;&#35081;&#33455;&#27899;\\&quot;, \\&quot;&#34979;&#33455;&#23633;&#25032;&#35083;&#35083;&#25032;&#35103;\\&quot;:\\&quot;&#34983;&#26800;&#35084;\\&quot;, \\&quot;&#34975;&#37034;&#35874;&#33455;&#35856;\\&quot;:\\&quot;0\\&quot;, \\&quot;&#21327;&#35084;&#37034;&#21368;\\&quot;:\\&quot;7\\&quot;, \\&quot;&#21327;&#35084;&#37034;&#21368;&#26800;&#27844; &#32961; &#20889;&#33455;&#23633;&#26800;\\&quot;:\\&quot;9\\&quot;, \\&quot;&#23389;&#25032;&#38156; &#20889;&#33455;&#23633;&#37034;\\&quot;:\\&quot;&#34985;&#37034;&#34218;&#26800;&#35874;&#35100;&#34218;&#35096;&#27844;\\&quot;, \\&quot;&#34985;&#35874;&#33455;&#35094;&#37034;&#20889;&#35100;\\&quot;:\\&quot;40\\&quot;, \\&quot;&#34967;&#20889;&#35081;&#26800;&#35083;\\&quot;:\\&quot;&#35083;&#35084;&#35085;&#20889;&#26800;&#34218;&#35092;&#26800;&#35083;&#27899;&#37034;&#35103; &#20889;&#33455;&#23633; &#37417;&#26422;\\&quot; 61*\\&quot;}&quot;\n</code></pre>",
      "votes": null,
      "replies": []
    },
    {
      "id": 125213,
      "author_name": "agrigorev",
      "author_url": "",
      "post_date": "06/27/2016 17:22:19",
      "content": "<p>Doesn't look Russian to me </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 125459,
      "author_name": "anwarsadique",
      "author_url": "",
      "post_date": "06/29/2016 16:12:08",
      "content": "<p>Are you reading it as Russian? I had to set , Sys.setlocale('LC_ALL', 'russian'); and encoding=&quot;UTF-8&quot; to make R read Russian correctly</p>\n\n<p>[quote=yilisg;125212]</p>\n\n<p>Anyone had issue parsing attrsJSONLatin[125620]?&#27844;\\&quot;, \\&quot;&#34985;&#35874;&#33455;&#35094;&#37034;&#20889;&#35100;\\&quot;:\\&quot;40\\&quot;, \\&quot;&#34967;&#20889;&#35081;&#26800;&#35083;\\&quot;:\\&quot;&#35083;&#35084;&#35085;&#20889;&#26800;&#34218;&#35092;&#26800;&#35083;&#27899;&#37034;&#35103; &#20889;&#33455;&#23633; &#37417;&#26422;\\&quot; 61*\\&quot;}&quot;</p>\n\n<p>[/quote]</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "122303": "I tried out parsing the russian text from the JSON in R... without luck. Tried packages jsonlite and RJSONIO.  Anyone get that working, or is python required ?",
    "122356": "Do you have Libre Office installed?\r\n\r\nIf you open a CSV in Libre Office, it shows a window for detecting the encoding, the separator, etc. \r\n\r\nAnyhow, `ItemInfo_train.csv` has clearly been encoded in UTF-8. If you look at the attrsJSON column, you can see that it is perfectly valid JSON, it looks like the examples from the [RJSONIO vignette](https://cran.r-project.org/web/packages/RJSONIO/RJSONIO.pdf).\r\n\r\nI never used RJOSNIO, but it looks like you are giving the wrong encoding to the `encoding` parameter.\r\n\r\nPlease provide an example of you using RJOSION or whatever tool you use.",
    "122360": "Try this code:\r\n\r\n\r\n\r\n    library(readr)\r\n    library(stringi)\r\n    library(jsonlite)\r\n    \r\n    # Read Items_Train\r\n    itemInfoTrain <- read_csv(\"../input/ItemInfo_train.csv\")\r\n\r\n    # Convert cyrillic to latin (be patient)\r\n    attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON, \"cyrillic-latin\")\r\n\r\n    # Extract JSON into a list\r\n    listJSON <- sapply(attrsJSONLatin,fromJSON)\r\n    \r\n    print(listJSON[[1]])\r\n    print(listJSON[[2]])\r\n\r\n\r\n\r\n\r\nRegards",
    "122378": "Thank you very much F.J. (and Ricardo) for the help. This worked really well - I had spent about 3 hours on this before :) \r\n\r\n\r\n    > library(readr)\r\n    > library(stringi)\r\n    > library(jsonlite)\r\n    > itemInfoTrain <- read_csv(\"ItemInfo_train.csv\", n_max = 3)\r\n    > attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON, \"cyrillic-latin\") \r\n    > listJSON <- sapply(attrsJSONLatin,fromJSON) \r\n    > print(listJSON[[1]])\r\n    $`Vid tehniki`\r\n    [1] \"Gruzoviki\"\r\n    \r\n    > print(names(listJSON[[1]]))\r\n    [1] \"Vid tehniki\"\r\n    > \r\n    > print(listJSON)\r\n    $`{\"Vid tehniki\":\"Gruzoviki\"}`\r\n    $`{\"Vid tehniki\":\"Gruzoviki\"}`$`Vid tehniki`\r\n    [1] \"Gruzoviki\"\r\n    \r\n    \r\n    $`{\"Vid tehniki\":\"Motocikly\", \"Vid motocikla\":\"Sportivnye\"}`\r\n    $`{\"Vid tehniki\":\"Motocikly\", \"Vid motocikla\":\"Sportivnye\"}`$`Vid tehniki`\r\n    [1] \"Motocikly\"\r\n    \r\n    $`{\"Vid tehniki\":\"Motocikly\", \"Vid motocikla\":\"Sportivnye\"}`$`Vid motocikla`\r\n    [1] \"Sportivnye\"\r\n    \r\n    \r\n    $`{\"Vid telefona\":\"iPhone\"}`\r\n    $`{\"Vid telefona\":\"iPhone\"}`$`Vid telefona`\r\n    [1] \"iPhone\"",
    "122389": "You're welcome...",
    "122477": "Hello Thanks for the question and answers,\r\n\r\n  listJSON <- sapply(attrsJSONLatin,fromJSON) is returning an error  Error: parse error: premature EOF\r\n                                       \r\n                     (right here) ------^\r\n\r\nIs anyone of you facing this problem?\r\n\r\nThank you.",
    "122507": "Are you transforming cyrillic to latin characters before this command? The previous codes should work...",
    "122509": "[quote=F.J.Martinez-de-Pison;122507]\r\n\r\nAre you transforming cyrillic to latin characters before this command? The previous codes should work...\r\n\r\n[/quote]\r\n\r\nyes I am using the full code above, what I have noticed is the error is coming when JSON is empty string \"\". The first empty string is at 35th position. \r\n\r\nWhen I just select 1:34, I am not getting any error.\r\n\r\nitemInfoTrain <- read_csv(\"ItemInfo_train.csv\")\r\n  attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON[1:34], \"cyrillic-latin\") \r\n  listJSON <- sapply(attrsJSONLatin,fromJSON) \r\n  print(listJSON[[1]])",
    "122519": "Last day, the previous code worked for me, but now I have the same problem. \r\n\r\nI have just solved the problem changing NAs with \"{}\":\r\n\r\n\r\n    library(readr)\r\n    library(stringi)\r\n    library(jsonlite)\r\n    \r\n    # Read Items_Train\r\n    itemInfoTrain <- read_csv(\"ItemInfo_train.csv\",n_max = 100)\r\n    # Convert cyrillic to latin\r\n    attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON, \"cyrillic-latin\")\r\n    \r\n    # Change NAs to \"{}\"\r\n    print(attrsJSONLatin[35])\r\n    attrsJSONLatin[is.na(attrsJSONLatin)] <- \"{}\"\r\n    \r\n    # Convert JSON\r\n    listJSON <- sapply(attrsJSONLatin,fromJSON)\r\n    print(listJSON[[35]])\r\n\r\n\r\n\r\nRegards",
    "122553": "[quote=F.J.Martinez-de-Pison;122519]\r\n\r\nLast day, the previous code worked for me, but now I have the same problem. \r\n\r\nI have just solved the problem changing NAs with \"{}\":\r\n\r\n\r\n    library(readr)\r\n    library(stringi)\r\n    library(jsonlite)\r\n    \r\n    # Read Items_Train\r\n    itemInfoTrain <- read_csv(\"ItemInfo_train.csv\",n_max = 100)\r\n    # Convert cyrillic to latin\r\n    attrsJSONLatin <- stri_trans_general(itemInfoTrain$attrsJSON, \"cyrillic-latin\")\r\n    \r\n    # Change NAs to \"{}\"\r\n    print(attrsJSONLatin[35])\r\n    attrsJSONLatin[is.na(attrsJSONLatin)] <- \"{}\"\r\n    \r\n    # Convert JSON\r\n    listJSON <- sapply(attrsJSONLatin,fromJSON)\r\n    print(listJSON[[35]])\r\n\r\n\r\n\r\nRegards\r\n\r\n[/quote]\r\n\r\nHello Thanks, when I replaced empty string as below it is working.\r\n\r\n  attrsJSONLatin[attrsJSONLatin == \"\"] <- \"{}\"",
    "122687": "If it is not too much to ask, how are you extracting key and value pairs from the list. Thanks",
    "122797": "Sorry for the late response...\r\n\r\nYou can paste keys and values using unlist() function:\r\n\r\n    print(listJSON[[100]])\r\n    keys <- sapply(listJSON,function(x) return(paste0(unlist(names(x)),collapse=\" - \")))\r\n    names(keys) <- NULL\r\n    values <- sapply(listJSON,function(x) return(paste0(unlist(x),collapse=\" - \")))\r\n    names(values) <- NULL\r\n    print(keys[100])\r\n    print(values[100])\r\n\r\nregards",
    "122805": "[quote=F.J.Martinez-de-Pison;122797]\r\n\r\nSorry for the late response...\r\n\r\nYou can paste keys and values using unlist() function:\r\n\r\n    print(listJSON[[100]])\r\n    keys <- sapply(listJSON,function(x) return(paste0(unlist(names(x)),collapse=\" - \")))\r\n    names(keys) <- NULL\r\n    values <- sapply(listJSON,function(x) return(paste0(unlist(x),collapse=\" - \")))\r\n    names(values) <- NULL\r\n    print(keys[100])\r\n    print(values[100])\r\n\r\nregards\r\n\r\n[/quote]\r\n\r\nThanks.",
    "125212": "Anyone had issue parsing attrsJSONLatin[125620]?\r\n\r\n    Error in parse_string(txt, bigint_as_char) : \r\n      parse error: after key and value, inside map, I expect ',' or '}'\r\n              娉婚偑瑜?鍐欒姱灞?閳╂湺\" 61*\"}\r\n                         (right here) ------^\r\n    \r\n    > attrsJSONLatin[125620]\r\n    [1] \"{\\\"孝懈锌 芯斜褗褟胁谢械薪懈褟\\\":\\\"小写邪屑\\\", \\\"袣芯谢懈褔械褋褌胁芯 泻芯屑薪邪褌\\\":\\\"1\\\", \\\"小褉芯泻 邪褉械薪写褘\\\":\\\"袧邪 写谢懈褌械谢褜薪褘泄 褋褉芯泻\\\", \\\"袣芯屑懈褋褋懈褟\\\":\\\"袧械褌\\\", \\\"袟邪谢芯谐\\\":\\\"0\\\", \\\"协褌邪卸\\\":\\\"7\\\", \\\"协褌邪卸械泄 胁 写芯屑械\\\":\\\"9\\\", \\\"孝懈锌 写芯屑邪\\\":\\\"袩邪薪械谢褜薪褘泄\\\", \\\"袩谢芯褖邪写褜\\\":\\\"40\\\", \\\"袗写褉械褋\\\":\\\"褋褌褍写械薪褔械褋泻邪褟 写芯屑 鈩朶\\\" 61*\\\"}\"",
    "125213": "Doesn't look Russian to me",
    "125459": "Are you reading it as Russian? I had to set , Sys.setlocale('LC_ALL', 'russian'); and encoding=\"UTF-8\" to make R read Russian correctly\r\n\r\n[quote=yilisg;125212]\r\n\r\nAnyone had issue parsing attrsJSONLatin[125620]?泄\\\", \\\"袩谢芯褖邪写褜\\\":\\\"40\\\", \\\"袗写褉械褋\\\":\\\"褋褌褍写械薪褔械褋泻邪褟 写芯屑 鈩朶\\\" 61*\\\"}\"\r\n\r\n[/quote]"
  },
  "source": "meta"
}