json - 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)
解决方案
推荐阅读
- java - 无法将命令代理到远程服务器。原始错误:错误:读取 ECONNRESET
- azure-active-directory - 从 Azure AD B2C 自定义策略调用受 OAuth 保护的 REST api
- pygame - 似乎无法同时选择多个圈子
- mobile - 带有附加/前缀下拉列表的文本表单
- optaplanner - 附近选择的条件概率分布 [Optaplanner]
- c# - 在 Visual Studio 的新解决方案中使用来自 github 的 Boostrap 模板
- c# - 是否存在 TaskPool 参考实现?
- elasticsearch - 为什么我的 Elasticsearch 查询检索所有索引文档
- c# - 如何在新记录水晶报表中显示上一条记录中某个公式的值
- loadrunner - 在 LOADRunner 中使用公式作为参数