如何解决TypeError:列表索引必须是整数或切片,而不是str JSON Scrapy
我正在抓取JSON响应,但收到以下错误
values = resp['acf']
TypeError: list indices must be integers or slices,not str
我不确定我在哪里做错了。 非常感谢您的回复。
# -*- coding: utf-8 -*-
import scrapy
import json
class MainSpider(scrapy.Spider):
name = 'main'
start_urls = 'https://chamber.vinylagency.com/wp-json/wp/v2/directory?industry-type=547&per_page=100'
def parse(self,response):
resp = json.loads(response.body)
values = resp['acf']
for value in values:
name = value['OrgName']
yield {
"Name": name,}
解决方法
引发异常是因为响应是对象列表,而您尝试将其作为dict直接访问。
以下是回复示例:
[
{
"id": 33286,"date": "2020-05-09T02:38:47","date_gmt": "2020-05-09T02:38:47","guid":
...
},{
"id": 32954,"date": "2020-05-09T02:38:22","date_gmt": "2020-05-09T02:38:22","guid":
...
}
]
您可能想这样解析:
def parse(self,response):
resp = json.loads(response.body)
for value in values:
name = value['acf']['OrgName']
yield {
"Name": name,}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。