我有一个json文件,我想用我从远程服务器scp的文件名更新“filename”字段。我对python还很陌生,但我会边学习边学习。在
JSON文件:
{"path":"/home/Document/Python",
"md5s":[{"filename":"",
"md5":"",
"timestamp":""},
{"filename":"",
"md5":"",
"timestamp":""},
{"filename":"",
"md5":"",
"timestamp":""}
]}
到目前为止我的python代码:
^{pr2}$格式化在这里并不是很好,但我几乎可以肯定在我的python脚本中它是很好的。 现在的情况是,当我是来自不同服务器的三个文件时,它用同一个文件填充所有字段“filename”。在
任何帮助都会很好。谢谢。在
编辑(当添加到文件时更新的问题起作用,但它用相同的文件名填充所有值。在
预期结果:
{"path":"/home/Document/Python",
"md5s":[{"filename":"text1.txt",
"md5":"",
"timestamp":""},
{"filename":"text2.txt",
"md5":"",
"timestamp":""},
{"filename":"text3.txt",
"md5":"",
"timestamp":""}
]}
实际:
{"path":"/home/Document/Python",
"md5s":[{"filename":"text1.txt",
"md5":"",
"timestamp":""},
{"filename":"text1.txt",
"md5":"",
"timestamp":""},
{"filename":"text1.txt",
"md5":"",
"timestamp":""}
]}}
我已经尽可能的帮你整理代码了。我不知道您为什么得到
KeyError
,但是您没有按照注释中的建议实现计数器。因为我不能访问config['servers']
,所以计数器可能在错误的位置,在这种情况下,将它放在for
内部循环中。我在您的json字符串上测试了这一点,它确实如您预期的那样工作,因此原理是正确的,您只需确保为counter
传递所需的值。在如果我理解正确的话,您可以从一个json文件开始,其中包含对文件的引用列表,并且您希望更新列表的下一个元素。在
您可以浏览
data['md5s']
搜索filename
字段为空的第一个元素,并在所有操作都已完成的情况下向列表中添加新的措辞:相关问题 更多 >
编程相关推荐