【发布时间】:2019-05-12 06:41:07
【问题描述】:
基本上,我已经通过带有单个 q 参数的 Google Books API 完成了 Python 请求和 Django 搜索功能(如下面的链接所示)
https://developers.google.com/books/docs/v1/using#WorkingVolumes
在提交表单后,我使用这个单个参数得到了我想要的 json 中的字典列表,并且我得到了 json 数据,其中 appers 关键字“Hobbit”和 URL 看起来像这样
http://127.0.0.1:8000/api?books=hobbit
但是当我尝试添加由 Google Books API 提供的特殊关键字时,例如, intitle、inauthor、inpublisher、subject 等
并尝试搜索它,我得到了 URL
http://127.0.0.1:8000/api?books=hobbit&intitle=&inauthor=&inpublisher=&isbn=& lccn=&oclc=
只返回单个 q 参数的数据,因为 Google Books API 中特殊关键字的正确 URL 如下所示
https://www.googleapis.com/books/v1/volumes?q=flowers+inauthor:keyes+subject:somesubject
如您所见,正确的 URL 得到了标记
+ 反对 & 和 : 反对 =
所以我想要获取的正确 URL 看起来像这样
http://127.0.0.1:8000/api?books=hobbit+intitle:something+inauthor:something+inpublisher:something+isbn:something+ lccn:something+oclc:something
我的问题是如何更改此结构以按照 Google 图书 API 的要求进行更正?
试图在 python-requests 文档中找到这个,但没有关于这个
views.py
def api(request):
books = {
'intitle': 'intitle',
'inauthor': 'inauthor',
'inpublisher': 'inpublisher',
'subject': 'subject',
'isbn': 'isbn',
'lccn': 'lccn',
'oclc': 'oclc'
}
if 'books' in request.GET:
books = request.GET['books']
url = 'https://www.googleapis.com/books/v1/volumes?q=%s' % books
response = requests.get(url)
books = response.json()
print(type(books))
with open("data_file.json", "w") as write_file:
json.dump(books, write_file)
return render(request, 'books/api.html', {'books': books})
【问题讨论】:
标签: python django python-requests