Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python获取json中的特定元素_Python_Json_Api_Google Books - Fatal编程技术网

如何使用python获取json中的特定元素

如何使用python获取json中的特定元素,python,json,api,google-books,Python,Json,Api,Google Books,我想用python访问一个特定的元素,但我不能 import json import requests search_book = str(input("search a book: ")) request = requests.get("https://www.googleapis.com/books/v1/volumes?q=" + search_book) request_text = request.text data = request_text print(data['items

我想用python访问一个特定的元素,但我不能

import json
import requests

search_book = str(input("search a book: "))
request = requests.get("https://www.googleapis.com/books/v1/volumes?q=" + search_book)
request_text = request.text

data = request_text
print(data['items']['volumeInfo']['title'])
错误在于:

回溯(最近一次调用上次):文件 “C:/Users/ddvit/Documents/programming/python/books/books.py”,第9行, 在里面 打印(数据['items']['volumeInfo']['title'])类型错误:字符串索引必须是整数


非常感谢:)

如果您从响应中获取原始文本,请使用
json()
方法:

import json
import requests

search_book = str(input("search a book: "))
response = requests.get("https://www.googleapis.com/books/v1/volumes?q=" + search_book)
data = response.json()

从响应中获取原始文本时,请改用
json()
方法:

import json
import requests

search_book = str(input("search a book: "))
response = requests.get("https://www.googleapis.com/books/v1/volumes?q=" + search_book)
data = response.json()

要以JSON的形式获取结果,您需要加载它
JSON.loads(request.text)
,或者使用
request.JSON()直接检索

那么items是一个数组,所以你不能直接访问信息

  • 你可以在上面迭代,然后得到标题

    data = request.json()
    for item in data['items']:
        title = item['volumeInfo']['title']
        print(title)
    
  • 直接访问一个

    print(data['items'][0]['volumeInfo']['title'])
    

要将结果作为JSON获取,您需要加载它
JSON.loads(request.text)
或直接使用
request.JSON()检索

那么items是一个数组,所以你不能直接访问信息

  • 你可以在上面迭代,然后得到标题

    data = request.json()
    for item in data['items']:
        title = item['volumeInfo']['title']
        print(title)
    
  • 直接访问一个

    print(data['items'][0]['volumeInfo']['title'])
    

这是ot python这是文本这是ot python这是文本