import nbformat
import requests
resp = requests.get('https://gist.githubusercontent.com/sheetal-psl/b78dd39fb93cfe6dc3dd056cee2fdab5/raw/b3ee288d70cf951dc9fbb09a29aaa9b6e2364cab/hello.ipynb')
resp.json()
--------------------------------------------------------------------------- JSONDecodeError Traceback (most recent call last) <ipython-input-4-23e810f2ed99> in <module>() ----> 1 resp.json() ~/miniconda3/envs/jupyter/lib/python3.6/site-packages/requests/models.py in json(self, **kwargs) 890 # used. 891 pass --> 892 return complexjson.loads(self.text, **kwargs) 893 894 @property ~/miniconda3/envs/jupyter/lib/python3.6/json/__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw) 352 parse_int is None and parse_float is None and 353 parse_constant is None and object_pairs_hook is None and not kw): --> 354 return _default_decoder.decode(s) 355 if cls is None: 356 cls = JSONDecoder ~/miniconda3/envs/jupyter/lib/python3.6/json/decoder.py in decode(self, s, _w) 337 338 """ --> 339 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 340 end = _w(s, end).end() 341 if end != len(s): ~/miniconda3/envs/jupyter/lib/python3.6/json/decoder.py in raw_decode(self, s, idx) 353 """ 354 try: --> 355 obj, end = self.scan_once(s, idx) 356 except StopIteration as err: 357 raise JSONDecodeError("Expecting value", s, err.value) from None JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
resp.text
'{\xa0"cells": [\xa0{\xa0"cell_type": "markdown",\xa0"metadata": {},\xa0"source": [\xa0"## Hello world"\xa0]\xa0},\xa0{\xa0"cell_type": "code",\xa0"execution_count": null,\xa0"metadata": {\xa0"collapsed": true\xa0},\xa0"outputs": [],\xa0"source": []\xa0},\xa0{\xa0\xa0 "cell_type": "code",\xa0\xa0 "execution_count": 2,\xa0\xa0 "metadata": {\xa0\xa0\xa0 "collapsed": false\xa0\xa0 },\xa0\xa0 "outputs": [\xa0\xa0\xa0 {\xa0\xa0\xa0\xa0 "data": {\xa0\xa0\xa0\xa0\xa0 "text/html": [\xa0\xa0\xa0\xa0\xa0\xa0 "<div>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "<table border=\\"1\\" class=\\"dataframe\\">\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0 <thead>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 <tr style=\\"text-align: right;\\">\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th></th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>Interest.Rate</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>FICO.Score</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>Loan.Length</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>Monthly.Income</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>Loan.Amount</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 </tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0 </thead>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0 <tbody>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 <tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>6</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>15.31</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>670</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>36</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>4891.67</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>6000</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 </tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 <tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>11</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>19.72</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>670</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>36</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>3575.00</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>2000</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 </tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 <tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>12</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>14.27</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>665</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>36</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>4250.00</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>10625</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 </tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 <tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>13</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>21.67</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>670</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>60</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>14166.67</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>28000</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 </tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 <tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <th>21</th>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>21.98</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>665</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>36</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>6666.67</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0\xa0\xa0 <td>22000</td>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 </tr>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0 </tbody>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "</table>\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "</div>"\xa0\xa0\xa0\xa0\xa0 ],\xa0\xa0\xa0\xa0\xa0 "text/plain": [\xa0\xa0\xa0\xa0\xa0\xa0 "\xa0\xa0\xa0 Interest.Rate\xa0 FICO.Score\xa0 Loan.Length\xa0 Monthly.Income\xa0 Loan.Amount\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "6\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 15.31\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 670\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 36\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 4891.67\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 6000\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "11\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 19.72\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 670\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 36\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 3575.00\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 2000\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "12\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 14.27\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 665\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 36\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 4250.00\xa0\xa0\xa0\xa0\xa0\xa0\xa0 10625\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "13\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 21.67\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 670\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 60\xa0\xa0\xa0\xa0\xa0\xa0\xa0 14166.67\xa0\xa0\xa0\xa0\xa0\xa0\xa0 28000\\n",\xa0\xa0\xa0\xa0\xa0\xa0 "21\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 21.98\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 665\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 36\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 6666.67\xa0\xa0\xa0\xa0\xa0\xa0\xa0 22000"\xa0\xa0\xa0\xa0\xa0 ]\xa0\xa0\xa0\xa0 },\xa0\xa0\xa0\xa0 "execution_count": 2,\xa0\xa0\xa0\xa0 "metadata": {},\xa0\xa0\xa0\xa0 "output_type": "execute_result"\xa0\xa0\xa0 }\xa0\xa0 ],\xa0\xa0 "source": [\xa0\xa0\xa0 "# import the cleaned up dataset\\n",\xa0\xa0\xa0 "df = pd.read_csv(\'./Datasets/loanf.csv\')\\n",\xa0\xa0\xa0 "df.head()\\n",\xa0\xa0\xa0 "#df.size"\xa0\xa0 ]\xa0 }\xa0],\xa0"metadata": {\xa0"kernelspec": {\xa0"display_name": "Python 3",\xa0"language": "python",\xa0"name": "python3"\xa0},\xa0"language_info": {\xa0"codemirror_mode": {\xa0"name": "ipython",\xa0"version": 3\xa0},\xa0"file_extension": ".py",\xa0"mimetype": "text/x-python",\xa0"name": "python",\xa0"nbconvert_exporter": "python",\xa0"pygments_lexer": "ipython3",\xa0"version": "3.6.0"\xa0}\xa0},\xa0"nbformat": 4,\xa0"nbformat_minor": 2\xa0}'
Replacing those characters solves the problem.
import json
cleaned = json.loads(resp.text.replace('\xa0', ' '))
nbformat.validate(cleaned)