首先,这是我的JSON文件结构
[{
"title": "Reference Addition",
"ref_date": 20200110,
"country": "ASIA",
"ref_internal": "1",
"ref_external": "1"
}]
我在Python代码中成功加载了文件。我想更改country的值并将其保存到一个新文件。
with open('myfile.json', 'r') as f:
json_data = json.load(f)
json_data['country'] = 'AFRICA'
with open('myfile.json', 'w') as f:
json.dump(json_data, f, indent=2)
但不幸的是我一直
AttributeError: module 'json' has no attribute 'tree'
我在网上搜索了一些东西,之后我设法解决了该错误,但现在遇到此错误
import json
myfile = ('JSON\TRADE.json')
with open (myfile, 'r') as myfile: json_data = json.load(myfile) json_data['country'] = 'AFRICA'
json.tree.dump(json_data, indent=4)
with open(myfile, 'w') as f: json.dump(json_data, f, indent=4)
现在具有完整追溯的错误是
追溯(最近调用最后调用):
File "c:\AUTOMATION\Data Creation\JSON\EDIT.py", line 7, in json_data['country'] = 'AFRICA' TypeError: list indices must be integers or slices, not str PS C:\AUTOMATION\Data Creation>
抱歉,如果任何细节是不正确的,但请让我知道,所以我可以提供
1条答案
按热度按时间anauzrmj1#
问题出在JSON文件结构上。JSON文件看起来像是一个对象数组,每个对象都包含您列出的属性。为了访问country属性,您需要首先访问数组中的对象。您可以通过指定对象的索引来完成此操作,如下所示:
这会将数组中第一个对象的country属性值更改为“AFRICA”。
此外,在您的代码中,不需要使用json.tree,只需要json.dump就可以将数据保存到文件中。