python - 在 python 中需要帮助删除 json 列表中的字典
问题描述
所以,我有一个任务,我需要为借来的书建立一个管理。我在 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 上,但在 borrowedbooks.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,它会删除借来的books.json 中的字典。
解决方案
因此,据我了解,当您将 2 输入到返回的图书 ID 变量或数组中时,您只能获得 2 的索引,而不是 2 的 ID。
您可以做的是使用 bookID = json.get('ID')
一个功能来检查类似于您在那里所做的事情。您正在使用数组,因此请记住这一点。
推荐阅读
- java - jGRASP appletviewer 不工作(路径错误)
- c++ - 如何禁用 MPI 的 C++ 包装器?
- graphdb - 在 ontext graphdb 中删除 lucene 索引
- elasticsearch - ElasticSearch:在包含文档的日期范围中查找不同日期的最佳方法是什么?
- kendo-ui - kendo-ui angular 6 如何使用模板自定义网格的列
- azure-devops - 如何为 repo 的 wiki 创建构建管道?
- angular - canActivated 保护的返回值错误
- android - 为什么 Android Studio 显示 Code xml 像“� �”
- angular - angular 6 / ngx-translate 和动态 devextreme dxDatagrid 列
- node.js - Node.js“无法读取未定义的属性'长度'