JSON 使用 Python 从 import.io 加载时出现线路问题
JSON Line issue when loading from import.io using Python
我很难尝试将来自 import.io 的 API 响应加载到文件或列表中。
我使用的点是https://data.import.io/extractor/{0}/json/latest?_apikey={1}
以前我所有的脚本都设置为使用正常 JSON 并且一切正常,但现在他们决定使用 json 行,但不知何故它似乎格式不正确。
我尝试调整我的脚本的方式是通过以下方式读取 API 响应:
url_call = 'https://data.import.io/extractor/{0}/json/latest?_apikey={1}'.format(extractors_row_dict['id'], auth_key)
r = requests.get(url_call)
with open(temporary_json_file_path, 'w') as outfile:
json.dump(r.content, outfile)
data = []
with open(temporary_json_file_path) as f:
for line in f:
data.append(json.loads(line))
这样做的问题是,当我检查数据[0]时,所有 json 文件内容都被转储到其中...
data[1] = IndexError: list index out of range
这里是data[0][:300]
的例子:
u'{"url":"https://www.example.com/de/shop?condition[0]=new&page=1&lc=DE&l=de","result":{"extractorData":{"url":"https://www.example.com/de/shop?condition[0]=new&page=1&lc=DE&l=de","resourceId":"23455234","data":[{"group":[{"Brand":[{"text":"Brand","href":"https://www.example.com'
有没有人对此API的回复有经验?
我从其他来源读取的所有其他 json 行都可以正常工作,除了这个。
根据评论编辑:
print repr(open(temporary_json_file_path).read(300))
给出这个:
'"{\"url\":\"https://www.example.com/de/shop?condition[0]=new&page=1&lc=DE&l=de\",\"result\":{\"extractorData\":{\"url\":\"https://www.example.com/de/shop?condition[0]=new&page=1&lc=DE&l=de\",\"resourceId\":\"df8de15cede2e96fce5fe7e77180e848\",\"data\":[{\"group\":[{\"Brand\":[{\"text\":\"Bra'
您的代码中存在双重编码错误:
with open(temporary_json_file_path, 'w') as outfile:
json.dump(r.content, outfile)
尝试:
with open(temporary_json_file_path, 'w') as outfile:
outfile.write(r.content)
我很难尝试将来自 import.io 的 API 响应加载到文件或列表中。
我使用的点是https://data.import.io/extractor/{0}/json/latest?_apikey={1}
以前我所有的脚本都设置为使用正常 JSON 并且一切正常,但现在他们决定使用 json 行,但不知何故它似乎格式不正确。
我尝试调整我的脚本的方式是通过以下方式读取 API 响应:
url_call = 'https://data.import.io/extractor/{0}/json/latest?_apikey={1}'.format(extractors_row_dict['id'], auth_key)
r = requests.get(url_call)
with open(temporary_json_file_path, 'w') as outfile:
json.dump(r.content, outfile)
data = []
with open(temporary_json_file_path) as f:
for line in f:
data.append(json.loads(line))
这样做的问题是,当我检查数据[0]时,所有 json 文件内容都被转储到其中...
data[1] = IndexError: list index out of range
这里是data[0][:300]
的例子:
u'{"url":"https://www.example.com/de/shop?condition[0]=new&page=1&lc=DE&l=de","result":{"extractorData":{"url":"https://www.example.com/de/shop?condition[0]=new&page=1&lc=DE&l=de","resourceId":"23455234","data":[{"group":[{"Brand":[{"text":"Brand","href":"https://www.example.com'
有没有人对此API的回复有经验? 我从其他来源读取的所有其他 json 行都可以正常工作,除了这个。
根据评论编辑:
print repr(open(temporary_json_file_path).read(300))
给出这个:
'"{\"url\":\"https://www.example.com/de/shop?condition[0]=new&page=1&lc=DE&l=de\",\"result\":{\"extractorData\":{\"url\":\"https://www.example.com/de/shop?condition[0]=new&page=1&lc=DE&l=de\",\"resourceId\":\"df8de15cede2e96fce5fe7e77180e848\",\"data\":[{\"group\":[{\"Brand\":[{\"text\":\"Bra'
您的代码中存在双重编码错误:
with open(temporary_json_file_path, 'w') as outfile:
json.dump(r.content, outfile)
尝试:
with open(temporary_json_file_path, 'w') as outfile:
outfile.write(r.content)