JSONDecodeError:额外数据:第1行第228列(字符227) [英] JSONDecodeError: Extra data: line 1 column 228 (char 227)

查看:70
本文介绍了JSONDecodeError:额外数据:第1行第228列(字符227)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Ipython进行一些数据分析,无法加载JSON文件.请帮助我在IPython中加载此JSON文件.而且我还想在第一行中跳过相同的单词以使其成为一种干净的格式,我希望每条记录看起来像这样:

I am using Ipython to do some data analysis, I can't load the JSON file. Please help me to load this JSON file in IPython. And I also want to skip same words in the first line to make it a clean format, I want each record looks like this :

{"station_id":"72","num_bikes_available":18,"num_bikes_disabled":0,"num_docks_available":20,"num_docks_disabled":1,"is_installed":1,"is_renting":1,"is_returning":1,"last_reported":"1467164372","eightd_has_available_keys":false},

这是我的代码:

In [9]: path = 'stationstatus.json'

In [10]: records = [json.loads(line) for line in open(path)]

这是错误:

JSONDecodeError                           Traceback (most recent call last)
<ipython-input-10-b1e0b494454a> in <module>()
----> 1 records = [json.loads(line) for line in open(path)]  
<ipython-input-10-b1e0b494454a> in <listcomp>(.0)
----> 1 records = [json.loads(line) for line in open(path)]
//anaconda/lib/python3.5/json/__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
317             parse_int is None and parse_float is None and
318             parse_constant is None and object_pairs_hook is None and not kw):
--> 319         return _default_decoder.decode(s)
320     if cls is None:
321         cls = JSONDecoder
//anaconda/lib/python3.5/json/decoder.py in decode(self, s, _w)
340         end = _w(s, end).end()
341         if end != len(s):
--> 342             raise JSONDecodeError("Extra data", s, end)
343         return obj
344 

这是我的JSON文件**的一部分:

Here is part of my JSON file** :

{
  "last_updated": 1467164806,
  "ttl": 10,
  "data": {
    "stations": [{
        "station_id": "72",
        "num_bikes_available": 18,
        "num_bikes_disabled": 0,
        "num_docks_available": 20,
        "num_docks_disabled": 1,
        "is_installed": 1,
        "is_renting": 1,
        "is_returning": 1,
        "last_reported": "1467164372",
        "eightd_has_available_keys": false
    }, {
        "station_id": "79",
        "num_bikes_available": 1,
        "num_bikes_disabled": 2,
        "num_docks_available": 30,
        "num_docks_disabled": 0,
        "is_installed": 1,
        "is_renting": 1,
        "is_returning": 1,
        "last_reported": "1467163375",
        "eightd_has_available_keys": false
    }, {
        "station_id": "82",
        "num_bikes_available": 3,
        "num_bikes_disabled": 3,
        "num_docks_available": 21,
        "num_docks_disabled": 0,
        "is_installed": 1,
        "is_renting": 1,
        "is_returning": 1,
        "last_reported": "1467161631",
        "eightd_has_available_keys": false
    }, {
        "station_id": "83",
        "num_bikes_available": 36,
        "num_bikes_disabled": 0,
        "num_docks_available": 26,
        "num_docks_disabled": 0,
        "is_installed": 1,
        "is_renting": 1,
        "is_returning": 1,
        "last_reported": "1467163453",
        "eightd_has_available_keys": false
    }, {
        "station_id": "116",
        "num_bikes_available": 5,
        "num_bikes_disabled": 3,
        "num_docks_available": 31,
        "num_docks_disabled": 0,
        "is_installed": 1,
        "is_renting": 1,
        "is_returning": 1,
        "last_reported": "1467164693",
        "eightd_has_available_keys": false
    }, {
        "station_id": "119",
        "num_bikes_available": 15,
        "num_bikes_disabled": 0,
        "num_docks_available": 4,
        "num_docks_disabled": 0,
        "is_installed": 1,
        "is_renting": 1,
        "is_returning": 1,
        "last_reported": "1467160413",
        "eightd_has_available_keys": false
    }]
  }
}

推荐答案

以下是加载文件的建议:

Here is a suggestion for loading the file:

with open('Path/to/file', 'r') as content_file:
    content = content_file.read()
records = json.loads(content)

json中的根对象将在您的 records 变量

The root object in your json will be in your records variable

这篇关于JSONDecodeError:额外数据:第1行第228列(字符227)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆