json yeid_如何控制Scrapy yield的顺序
我想从一个json接口爬点数据 http://china.fathom.info/data/data.json,比如看这个代码,如果yield放在parse里,我想当然的认为应该是for循环完yield Request再yield group_item,然而这样parse_member里的东西就不会存进group_item了,但如果yield group_item放在parse_member里,数据又会变成
{'A':1, 'members':[{'id':11}]}, {'A':1, 'members':[{'id':22}]}
而不是
{'A':1, 'members':[{'id':11}, {'id':22}]}
请问该如何解决这个问题。如果用urllib2顺序写一下比较好理解,但如果非得用scrapy呢?感觉自己对scrapy的request的请求顺序理解得很混乱。
start_urls = [
"http://china.fathom.info/data/data.json"
]
def parse(self, response):
groups = json.loads(response.body)['group_members']
for i in groups:
group_item = GroupItem()
group_item['name'] = groups[i]['name']
group_item['chinese'] = groups[i]['chinese']
group_item['members'] = []
members = groups[i]['members']
for member in members:
yield Request(self.person_url % member['id'], meta={'group_item': group_item, 'member': member},
callback=self.parse_member, priority=100)
yield group_item
def parse_member(self, response):
group_item = response.meta['group_item']
member = response.meta['member']
person = json.loads(response.body)
ego = person['ego']
group_item['members'].append({
'id': ego['id'],
'name': ego['name'],
'chinese': ego['chinese'],
'role': member['role']
})
json yeid_如何控制Scrapy yield的顺序相关推荐
- 【 js基础 Day2】js的流程控制:分支语句,循环.顺序结构
复习 JavaScript简称为JS JavaScript是什么? 是一门脚本语言:不需要编译,直接运行 是一门解释性的语言:遇到一样代码就解释一行代码 C#语言是一门面向对象的语言,也是编译语言,是 ...
- Spring 使用注解@DependsOn控制Bean加载顺序
文章目录 1. 前言 2. 代码实现 1. 前言 默认情况下,Spring加载Bean的顺序是不确定的(或者可以理解为,按编译后的class文件顺序加载).当我们需要控制Bean加载顺序以满足特定的需 ...
- 控制过滤器Filter执行顺序
方式一:web.xml中的filter-mapping位置 通过web.xml中控制filter-mapping的位置来控制的,放在上面的会比放在下面的先执行,如下"用户登录检查过滤器&qu ...
- python表达式中可以控制运算的优先顺序_在Python表达式中可以使用_______控制运算的优先顺序。...
[填空题]Python中的大部分对象均为不可变对象,例如___________________________等,_ __________________________________等则为可变对象 ...
- ROS学习笔记-roslaunch文件的编写用sh脚本控制launch文件启动顺序
转载自:https://mp.weixin.qq.com/s?__biz=MzUyMTkxODQyOQ==&mid=2247484719&idx=1&sn=27b3a01c29 ...
- JSON序列化后按对象中声明顺序序列化或者指定顺序序列化(Java)
JSON序列化后按对象中声明顺序序列化或者指定顺序序列化 阿里巴巴的fastjson对json字符串进行序列化,序列化之后发现顺序发生了改变按照字母顺序系列化,导致之后业务出现问题. 解决方法1: L ...
- html怎么键tab键,html中控制Tab键的顺序
在做项目中,需要控制html页面上登陆表单的按Tab键的顺序,代码如下: 账 号:昵称: 备注:这里的tabIndex的值可为0至32767之间的任意数字 当浏览者使用TAB键在网页控件中移动时,将首 ...
- json yeid_【分享】自动格式化输出JSON的小插件分享给大家
大家在使用UNIT的时候,是不是经常要处理返回的JSON数据,经常需要复制粘贴到网页来进行格式转化很麻烦. 在这里写了一个JSON通用格式化输出的PYTHON代码:UNIT_JSON_FORMAT V ...
- 怎么控制ajax执行先后顺序,[转]多个ajax请求时控制执行顺序或全部执行后的操作...
一.当确保执行顺序时: 1. 请求加async: false,,这样所有的ajax就会同步执行,请求顺序就是代码顺序 2.$.when($.ajax( {async: false, url : url ...
最新文章
- 虚函数中的变量作用域问题
- python处理excel字典-使用Python代码处理Excel
- 【CV论文阅读】Rank Pooling for Action Recognition
- 巨量引擎短视频广告价值白皮书
- python总结简短_Python简单的基础总结
- win7企业版激活秘钥激活kms安装激活教程
- 原生js实现新年倒计时
- 海岸鸿蒙质检质控样浓度一览表,环境标准样品数值对照表(质控样)
- educoder答案pythonnumpy_Educoder 题解
- 关于Google谷歌微信不能使用小程序
- Wifi_认证 、关联 和 四次握手(WPA/WPA2)
- 阿里云容器服务全线升级,ACK Pro开启公测、边缘容器商业化
- 签好软件定制开发合同,需要注意什么
- kmp算法,小试牛刀
- matplotlib 库画云图两种方法
- python库在哪个文件夹里_pip python库安装在哪里了
- react中脚手架 Nowa
- 域控制器无法向DNS注册SRV记录解决办法
- 基克的聚合 机器人_英雄联盟赛场黑科技 RNGming机器人攻略
- QT Creator构建HelloWorld出现Qt\Tools\QtCreator\bin\jom.exe退出,退出代码 2错误解决