在第一个函数district_parse中,detail2是一个列表字典,里面包含多个字典,我想将这些字典作为参数循环传入meta,但总是只能传入第一个字典,有什么解决办法?
def district_parse(self,response):
item2 = response.meta["item"]
Data2 = json.loads(re.findall(r'[(](.*?)[)]', response.text)[0])
detail2 = Data2['data']['list']
for loop1 in detail2:
item2["district_time"] = loop1["timeHuman"]
item2["district_name"] = loop1["district_name"]
item2["district_congest"] = loop1["index"]
item2["district_speed"] = loop1["speed"]
item2["district_length"] = loop1["length"]
url = "https://www.example.com"
yield Request(url, meta={"item2": copy.deepcopy(item2)}, callback=self.curvehistory_parse)
def curvehistory_parse(self,response):
item3 = response.meta.get('item2')
Data3 = json.loads(re.findall(r'[(](.*?)[)]', response.text)[0])
detail3 = Data3['data']['list']
for loop2 in detail3:
item3["index"] = loop2["index"]
item3["indexHis"] = loop2["indexHis"]
item3["date"] = loop2["time"]
yield copy.deepcopy(item3)
district_parse函数中有 yield 说明是生成器函数,要用next()多次调用才行。
或者用for循环调用。
for res in self.district_parse(xxxxxxxx):
pass
如果你不是要生成器函数就不要用yield
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y