如何使用Python从请求响应中筛选所需数据
我有一些get请求的响应存储在一个变量中,如下所示如何使用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
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”