首页 > 解决方案 > Python3 json加载问题

问题描述

我正在尝试解析空的 json 文件并尝试将新数据附加到数组中。

这就是我想要的: [{'key1': 'value1'}, {'key2': 'value2'}]

这是我的代码:

import json
import argparse
import sys


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-t', '--title', type=str,
                        help='title of the your key')
    parser.add_argument('-v', '--value', type=str,
                        help='value of the your key')
    args = parser.parse_args()
    sys.stdout.write(str(tango(args)))


def tango(args):

    with open('tango.json', 'r') as fp:
        tango2 = json.load(fp)

    title = args.title
    value = args.value

    tango = {
        "name" : title,
        "value" : value
    }

    tango2.append([tango])
    with open('tango.json', 'a') as jsonfeed:
        json.dump(tango2, jsonfeed)


if __name__ == '__main__':
    main()

错误:

python3 playground2.py -t=title2 -v=value2

回溯(最后一次调用):文件“playground2.py”,第 39 行,在 main() 文件“playground2.py”,第 17 行,在 main sys.stdout.write(str(apikeys(args)))

文件“playground2.py”,第 23 行,在 apikeys apikeys2 = json.load (fp) 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/init .py”,第 299 行,在加载 parse_constant= parse_constant , object_pairs_hook=object_pairs_hook, **kw) 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/init .py”,第 354 行,在加载中返回 _default_decoder .decode(s) 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/decoder.py”,第 339 行,解码 obj,end = self.raw_decode(s, idx= _w(s, 0).end()) 文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/decoder.py”,第 357 行,在 raw_decode raise JSONDecodeError("Expecting value ", s, err.value) 从无json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

标签: jsonpython-3.xjsondecoder

解决方案


推荐阅读