Проблема с загрузкой jthon в Python3 - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь проанализировать пустой файл 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 plays2.py -t = title2 -v = value2

Traceback (последний вызов был последним): Файл "plays2.py", строка 39, в main () Файл "plays2.py", строка 17, в main sys.stdout.write (str (apikeys (args)))

Файл "plays2.py", строка 23, в apikeys apikeys2 = json.load (fp) File "/ 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) Файл" / Библиотека/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 ", lin339, в объекте декодирования, 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 повысить JSONDecodeError (« Ожидаемое значение », s, err.value) из None json.decoder.JSONDecodeError: Ожидаемое значение: строка 1, столбец 1 (символ 0)

...