"Admins": [
{
"Admin_name": "admin",
"Admin_pass": "admin"
},
{
"Admin_name": "administrator",
"Admin_pass": "password"
}
],
"Teachers": [
{
"Name": "Yersin Zhanabekov",
"Course": "Physical Culture",
"Login": "Yersin.Zhanabekov",
"Pass": "Yersin123",
"Mark": null
},
{
"Name": "Kayrat Mynbayev",
"Course": "Theory of Probability and Mathematical Statistics",
"Login": "Kayrat.Mynbayev",
"Pass": "Kayrat123",
"Mark": null
},
{
"Name": "Magzhan Ikram",
"Course": "Python",
"Login": "Magzhan .Ikram",
"Pass": "Magzhan123",
"Mark": null
},
{
"Name": "Mag",
"Course": "Python",
"Login": "Magzhan .Ikram",
"Pass": "Magzhan123",
"Mark": null
}
], },
{
"Name": "Mag",
"Course": "Python",
"Login": "Magzhan",
"Pass": "Magzhan123",
"Mark": null
}
],
with open('dict.json', 'r') as rf:
dataRead = json.load(rf)
log = input("Your username: ")
pas = input("Your password: ")
for name in dataRead['Admins']:
if log == name['Admin_name'] and pas == name['Admin_pass']:
y = {'Name': "Hello"}
dataRead['Teachers'][3]['Name'].pop()
dataRead['Teachers'][3]['Name'].append(y)
with open('dict.json', 'w') as rf:
dataRead = json.dump(dataRead,rf)
我想删除对象名,并将其更改为新名称。使用pop()
或.delete()
但不管怎样,我也犯了同样的错误
我该怎么办
错误是:
Traceback (most recent call last):
dataRead ['Teachers'] [3] ['Name']. pop () AttributeError: 'str' object has no attribute 'pop'
你应该这么做
您还可以查看JSONPath表达式(使用像^{} 这样的库)。它使您能够更灵活地浏览JSON对象。以下是一些例子:
更改特定元素的
Name
:从具有
Name
属性的元素中弹出Name
:为
中的所有节点设置Teachers
Name
dataRead['Teachers']是一个列表。一旦您确定了列表中要删除的项目的索引(例如,3),那么dataRead(['Teachers'].pop(3)
相关问题 更多 >
编程相关推荐