如何在scrapy中读取json文件中的行

Oli*_*via 3 python json scrapy readlines

我有一个JSON文件存储一些用户信息,包括id,nameurl.json文件如下所示:

{"link": "https://www.example.com/user1", "id": 1, "name": "user1"}
{"link": "https://www.example.com/user1", "id": 2, "name": "user2"}
Run Code Online (Sandbox Code Playgroud)

这个文件是由scrapy蜘蛛写的.现在我想从json文件中读取urls并抓取每个用户的网页.但我无法从json文件加载数据.

这时,我不知道如何获取这些网址.我想我应该首先阅读json文件中的行.我在Python shell中尝试了以下代码:

import json    
f = open('links.jl')    
line = json.load(f)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 2 column 1- line 138 column 497(char498-67908)
Run Code Online (Sandbox Code Playgroud)

我在网上做了一些搜索.搜索表明json文件可能存在一些格式问题.但是json文件是使用scrapy管道创建并填充项目的.有没有人知道导致错误的原因是什么?以及如何解决?有关阅读网址的任何建议吗?

非常感谢.

小智 7

这些是出口商名称暗示的json线.

采取一看scrapy.contrib.exporter,看到的区别JsonItemExporterJsonLinesItemExporter

这应该做的伎俩:

import json

lines = []

with open('links.jl', 'r') as f:
    for line in f:
        lines.append(json.loads(line))
Run Code Online (Sandbox Code Playgroud)