Python 更新json文件的脚本
Python脚本,它接受两个输入,然后删除一些项Python 更新json文件的脚本,python,json,Python,Json,Python脚本,它接受两个输入,然后删除一些项 { “a”:[ “一个”, “两个”, “三个” ], “b”:[ “四”, “五个”, “六个” ], “c”:[ “七”, “八”, “九”, “十” ] } Python脚本: import json import sys alphaname=sys.argv[1] numname=sys.argv[2] with open('test.json', 'r+') as f: data = json.load(f) del da
{
“a”:[
“一个”,
“两个”,
“三个”
],
“b”:[
“四”,
“五个”,
“六个”
],
“c”:[
“七”,
“八”,
“九”,
“十”
]
}
Python脚本:
import json
import sys
alphaname=sys.argv[1]
numname=sys.argv[2]
with open('test.json', 'r+') as f:
data = json.load(f)
del data[alphaname][numname]
当我运行脚本python purest.py a three
时,
它应该从a
中删除3个
,并更新json文件
以下是错误:
del数据[alphaname][numname]
TypeError:列表索引必须是整数,而不是str
numname
是一个字符串,当您使用python purest.py a three运行程序时,它作为参数从中接收
data[alphaname]
提供一个数组,该数组是键a
=>您对数据[alphaname]
的输出将是[“一”、“二”、“三”]
您可以添加以下代码(一种非常基本的解决方法):
如果这对你有效,一定要告诉我。
祝您一切顺利。我想这正是您想要的:
import json
import sys
alphaname = sys.argv[1]
numname = sys.argv[2]
filename = 'update_me.json'
with open(filename, 'r') as f:
data = json.load(f)
data[alphaname].remove(numname)
# Update file.
with open(filename, 'w') as f:
json.dump(data, f, indent=4)
它给了我del data[alphaname][numname]类型错误:列表索引必须是整数,而不是str字典中的值是列表。不能通过名称访问列表值。您需要通过它们的索引来访问它们。类似这样的deldata['a'][1]
。您传递的参数是什么?hi@martineau我提供了一个解决方案。这应该行得通。请看一看。因为它有代码,所以我无法在评论中发布。@SachinPC:它可能会工作(现在你已经修复了类型错误
),但是如果数据[alphaname][I]!=numname:TypeError:列表索引必须是整数,而不是unicode。对不起,关于这一点,我漏掉了。我已经更新了答案@user17970。不用担心。很乐意帮忙。
import json
import sys
alphaname = sys.argv[1]
numname = sys.argv[2]
filename = 'update_me.json'
with open(filename, 'r') as f:
data = json.load(f)
data[alphaname].remove(numname)
# Update file.
with open(filename, 'w') as f:
json.dump(data, f, indent=4)