因此,我有一个任务,我需要为借来的书建立管理。我在listofbooks.json中有一个图书清单(100本书)。我可以从listofbooks.json将书添加到另一个名为Borrowedbooks.json的json文件中,但是问题是我无法“取消借用”这本书。因此,我尝试“取消借出”一本书的方法是:
import json
def DeleteBook(p):
for x in B:
if x['title'] == C[p]['title']:
del B[p]
with open('Borrowedbooks.json','w') as output:
json.dump(B,output,indent=2)
print("Deleted succesfully!")
break
else:
print("The book that you want to delete doesn't exist")
break
C = json.load(open('ListOfBooks.json'))
B = json.load(open('Borrowedbooks.json'))
此代码的问题是,如果有人借出ID为2和ID为4的书,则它正在检查索引,但我想要的是它检查书的ID,但这就是我不能做的重点。该索引在borrowbooks.json文件中不正确,并且将转到else语句。 因此,在我的ListOfBooks.json文件中,ID为2的书在索引2上,但是在rowedbooks.json中,ID 2的书在索引0上 借用的books.json看起来像这样:
[
{
"ID": 2,
"author": "Dante Alighieri",
"country": "Italy",
"imageLink": "images/the-divine-comedy.jpg",
"language": "Italian",
"link": "https://en.wikipedia.org/wiki/Divine_Comedy\n",
"pages": 928,
"title": "The Divine Comedy",
"year": 1315
},
{
"ID": 3,
"author": "Unknown",
"country": "Sumer and Akkadian Empire",
"imageLink": "images/the-epic-of-gilgamesh.jpg",
"language": "Akkadian",
"link": "https://en.wikipedia.org/wiki/Epic_of_Gilgamesh\n",
"pages": 160,
"title": "The Epic Of Gilgamesh",
"year": -1700
}
]
我的问题是我该如何创建一个功能,使用户可以在其中写入图书ID,并删除其中所借的字典。
答案 0 :(得分:1)
因此,据我了解,当您将2输入到返回的图书ID变量或数组中时,只能获得2的索引,而不是2的索引。
您可以做的是使用bookID = json.get('ID')
和一个函数来检查与您在那里所做的类似。您正在使用数组,因此请记住这一点。