如何使用Python从请求响应中筛选所需数据

如何使用Python从请求响应中筛选所需数据,python,json,python-requests,Python,Json,Python Requests,我有一些get请求的响应存储在一个变量中,如下所示 dashboard = 'http://12.345.67.890:8000/api/search?query=&starred=false' dashboardr = s.get(dashboard) dashboards = dashboardr.content print(dashboards) [{"id":19,"title":"Apple","uri":"db/abc-api","type":"dash-db","tags

我有一些get请求的响应存储在一个变量中,如下所示

dashboard = 'http://12.345.67.890:8000/api/search?query=&starred=false'
dashboardr = s.get(dashboard)
dashboards = dashboardr.content
print(dashboards)
[{"id":19,"title":"Apple","uri":"db/abc-api","type":"dash-db","tags":[],"isStarred":false},{"id":20,"title":"Banana","uri":"db/cde-api","type":"dash-db","tags":[],"isStarred":false},{"id":7,"title":"Mango","uri":"db/efg","type":"dash-db","tags":[],"isStarred":false}]
答案如下所示

dashboard = 'http://12.345.67.890:8000/api/search?query=&starred=false'
dashboardr = s.get(dashboard)
dashboards = dashboardr.content
print(dashboards)
[{"id":19,"title":"Apple","uri":"db/abc-api","type":"dash-db","tags":[],"isStarred":false},{"id":20,"title":"Banana","uri":"db/cde-api","type":"dash-db","tags":[],"isStarred":false},{"id":7,"title":"Mango","uri":"db/efg","type":"dash-db","tags":[],"isStarred":false}]
有人能帮我提取title的值并存储在另一个变量中吗

上述响应中的标题值为

苹果公司 香蕉 芒果 您可以将标题保存在列表变量中,而不是打印标题

您可以将标题保存在列表变量中,而不是打印标题

使用eval(仪表盘)代替仪表盘

dashboard = 'http://12.345.67.890:8000/api/search?query=&starred=false'
dashboardr = s.get(dashboard)
# eval() will convert a string to a python statement/expression
dashboards = eval(dashboardr.content)

title_list = []
for _ in dashboards:
   title_list.append(dashboards["title"])
使用eval(仪表板)而不是仪表板

dashboard = 'http://12.345.67.890:8000/api/search?query=&starred=false'
dashboardr = s.get(dashboard)
# eval() will convert a string to a python statement/expression
dashboards = eval(dashboardr.content)

title_list = []
for _ in dashboards:
   title_list.append(dashboards["title"])

假设来自HTTP调用的响应是字符串,下面的代码将提取标题

import json

response_str = '[{"id": 19, "title": "Apple", "uri": "db/abc-api", "type": "dash-db", "tags": [], "isStarred": false},{"id": 20, "title": "Banana", "uri": "db/cde-api", "type": "dash-db", "tags": [], "isStarred": false},{"id": 7, "title": "Mango", "uri": "db/efg", "type": "dash-db", "tags": [], "isStarred": false}]'
response_dict = json.loads(response_str)
titles = [entry['title'] for entry in response_dict]
print(titles)
输出:

[u'Apple', u'Banana', u'Mango']

假设来自HTTP调用的响应是字符串,下面的代码将提取标题

import json

response_str = '[{"id": 19, "title": "Apple", "uri": "db/abc-api", "type": "dash-db", "tags": [], "isStarred": false},{"id": 20, "title": "Banana", "uri": "db/cde-api", "type": "dash-db", "tags": [], "isStarred": false},{"id": 7, "title": "Mango", "uri": "db/efg", "type": "dash-db", "tags": [], "isStarred": false}]'
response_dict = json.loads(response_str)
titles = [entry['title'] for entry in response_dict]
print(titles)
输出:

[u'Apple', u'Banana', u'Mango']

这还不足以回答问题,它只修复了问题的第二部分,而不是如何解析响应。实现时,我得到了错误打印(i['title'])类型错误:字符串索引必须是整数,而不是包含eval函数的strw,我得到的是'for i in eval(a):File',第1行,在NameError中:没有定义名称'false',这是因为这里的小写字母是“false”,而不是“false”。您可以使用.replace方法修复此问题。更新的答案这还不足以回答问题,它只修复了问题的第二部分,而不是如何解析响应。实现时,我得到了错误打印(i['title'])类型错误:字符串索引必须是整数,而不是strw,其中包含了eval函数,我得到的是'for i in eval(a):File',第1行,在NameError中:没有定义名称'false',这是因为这里的小写字母是“false”,而不是“false”。您可以使用.replace方法修复此问题。更新的应答我收到的错误为dashboards=eval(dashboardr.content)文件“”,第1行,名称错误:未定义名称“false”。我收到的错误为dashboards=eval(dashboardr.content)文件“”,第1行,名称错误:未定义名称“false”