我想从一个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的顺序相关推荐

  1. 【 js基础 Day2】js的流程控制:分支语句,循环.顺序结构

    复习 JavaScript简称为JS JavaScript是什么? 是一门脚本语言:不需要编译,直接运行 是一门解释性的语言:遇到一样代码就解释一行代码 C#语言是一门面向对象的语言,也是编译语言,是 ...

  2. Spring 使用注解@DependsOn控制Bean加载顺序

    文章目录 1. 前言 2. 代码实现 1. 前言 默认情况下,Spring加载Bean的顺序是不确定的(或者可以理解为,按编译后的class文件顺序加载).当我们需要控制Bean加载顺序以满足特定的需 ...

  3. 控制过滤器Filter执行顺序

    方式一:web.xml中的filter-mapping位置 通过web.xml中控制filter-mapping的位置来控制的,放在上面的会比放在下面的先执行,如下"用户登录检查过滤器&qu ...

  4. python表达式中可以控制运算的优先顺序_在Python表达式中可以使用_______控制运算的优先顺序。...

    [填空题]Python中的大部分对象均为不可变对象,例如___________________________等,_ __________________________________等则为可变对象 ...

  5. ROS学习笔记-roslaunch文件的编写用sh脚本控制launch文件启动顺序

    转载自:https://mp.weixin.qq.com/s?__biz=MzUyMTkxODQyOQ==&mid=2247484719&idx=1&sn=27b3a01c29 ...

  6. JSON序列化后按对象中声明顺序序列化或者指定顺序序列化(Java)

    JSON序列化后按对象中声明顺序序列化或者指定顺序序列化 阿里巴巴的fastjson对json字符串进行序列化,序列化之后发现顺序发生了改变按照字母顺序系列化,导致之后业务出现问题. 解决方法1: L ...

  7. html怎么键tab键,html中控制Tab键的顺序

    在做项目中,需要控制html页面上登陆表单的按Tab键的顺序,代码如下: 账 号:昵称: 备注:这里的tabIndex的值可为0至32767之间的任意数字 当浏览者使用TAB键在网页控件中移动时,将首 ...

  8. json yeid_【分享】自动格式化输出JSON的小插件分享给大家

    大家在使用UNIT的时候,是不是经常要处理返回的JSON数据,经常需要复制粘贴到网页来进行格式转化很麻烦. 在这里写了一个JSON通用格式化输出的PYTHON代码:UNIT_JSON_FORMAT V ...

  9. 怎么控制ajax执行先后顺序,[转]多个ajax请求时控制执行顺序或全部执行后的操作...

    一.当确保执行顺序时: 1. 请求加async: false,,这样所有的ajax就会同步执行,请求顺序就是代码顺序 2.$.when($.ajax( {async: false, url : url ...

最新文章

  1. 虚函数中的变量作用域问题
  2. python处理excel字典-使用Python代码处理Excel
  3. 【CV论文阅读】Rank Pooling for Action Recognition
  4. 巨量引擎短视频广告价值白皮书
  5. python总结简短_Python简单的基础总结
  6. win7企业版激活秘钥激活kms安装激活教程
  7. 原生js实现新年倒计时
  8. 海岸鸿蒙质检质控样浓度一览表,环境标准样品数值对照表(质控样)
  9. educoder答案pythonnumpy_Educoder 题解
  10. 关于Google谷歌微信不能使用小程序
  11. Wifi_认证 、关联 和 四次握手(WPA/WPA2)
  12. 阿里云容器服务全线升级,ACK Pro开启公测、边缘容器商业化
  13. 签好软件定制开发合同,需要注意什么
  14. kmp算法,小试牛刀
  15. matplotlib 库画云图两种方法
  16. python库在哪个文件夹里_pip python库安装在哪里了
  17. react中脚手架 Nowa
  18. 域控制器无法向DNS注册SRV记录解决办法
  19. 基克的聚合 机器人_英雄联盟赛场黑科技 RNGming机器人攻略
  20. QT Creator构建HelloWorld出现Qt\Tools\QtCreator\bin\jom.exe退出,退出代码 2错误解决

热门文章

  1. 高德地图api如何不显示logo_Python爬取高德地图POI数据获取「洗浴推拿指南」
  2. 【火炉炼AI】机器学习006-用决策树回归器构建房价评估模型
  3. iOS 开发之几个 Demo 分享网站
  4. Spring事务管理(注解式声明事务管理)备忘
  5. 1.7 LINUX启动流程
  6. JSON DATE 转换标准的一些资料(收集)
  7. 中国联通(网通)国家数据中心上海漕河泾IDC机房(五星级)
  8. Entity Framework安装方法
  9. svn和GitHub的使用
  10. FastJson漏洞