Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading JSON file with Python 3

I'm using Python 3.5.2 on Windows 10 x64. The JSON file I'm reading is this which is a JSON array containing 2 more arrays.

I'm trying to parse this JSON file using the json module. As described in the docs the JSON file must be compliant to RFC 7159. I checked my file here and it tells me it's perfectly fine with the RFC 7159 format, but when trying to read it using this simple python code:

with open(absolute_json_file_path, encoding='utf-8-sig') as json_file:     text = json_file.read()     json_data = json.load(json_file)     print(json_data) 

I'm getting this exception:

Traceback (most recent call last):   File "C:\Program Files (x86)\JetBrains\PyCharm 4.0.5\helpers\pydev\pydevd.py", line 2217, in <module>     globals = debugger.run(setup['file'], None, None)   File "C:\Program Files (x86)\JetBrains\PyCharm 4.0.5\helpers\pydev\pydevd.py", line 1643, in run     pydev_imports.execfile(file, globals, locals)  # execute the script   File "C:\Program Files (x86)\JetBrains\PyCharm 4.0.5\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile     exec(compile(contents+"\n", file, 'exec'), glob, loc)    File "C:/Users/Andres Torti/Git-Repos/MCF/Sur3D.App/shapes-json-checker.py", line 14, in <module>     json_data = json.load(json_file)   File "C:\Users\Andres Torti\AppData\Local\Programs\Python\Python35-32\lib\json\__init__.py", line 268, in load     parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)   File "C:\Users\Andres Torti\AppData\Local\Programs\Python\Python35-32\lib\json\__init__.py", line 319, in loads     return _default_decoder.decode(s)   File "C:\Users\Andres Torti\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py", line 339, in decode     obj, end = self.raw_decode(s, idx=_w(s, 0).end())   File "C:\Users\Andres Torti\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py", line 357, in raw_decode     raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 

I can read this exact file perfectly fine on Javascript but I can't get Python to parse it. Is there anything wrong with my file or is any problem with the Python parser?

like image 274
Andres Avatar asked Jul 28 '16 18:07

Andres


People also ask

How do you read a JSON file line by line in Python?

Python read JSON file line by lineStep 1: import json module. Step 3: Read the json file using open() and store the information in file variable. Step 4: Convert item from json to python using load() & store the information in db variable. Step 5: append db in lineByLine empty list.

How do I read a JSON string in Python?

If you have a JSON string, you can parse it by using the json.loads() method. The result will be a Python dictionary.

Can Python work with JSON files?

Python Supports JSON Natively! Python comes with a built-in package called json for encoding and decoding JSON data.


1 Answers

Try this

import json  with open('filename.txt', 'r') as f:     array = json.load(f)  print (array) 
like image 185
lcastillov Avatar answered Sep 24 '22 23:09

lcastillov