我正在使用StackAPI提取与python相关的问题,答案和注释。我使用以下代码提取与Python相关的问题。
from stackapi import StackAPI
SITE = StackAPI('stackoverflow')
questions = SITE.fetch('questions', tagged='python', fromdate=from_date, todate=today,filter='withbody')
然后我从检索到的问题中提取question_id列表,以获得与检索问题有关的答案
quest_ids= []
for quest in questions['items']:
quest_ids.insert(len(quest_ids),quest['question_id'])
所有与问题相关的ID都在quest_id中。现在,我使用quest_ids列表通过以下代码检索那些问题的答案:
answers =SITE.fetch('questions/{ids}/answers',ids=quest_ids,filter='withbody')
但是,当我运行上面的代码时,出现以下错误:
JSONDecodeError跟踪(最近的调用) 最后)〜/ anaconda3 / lib / python3.6 / site-packages / stackapi / stackapi.py在 提取(自身,端点,页面,键,过滤器,** kwargs) 189 response.encoding ='utf-8-sig' -> 190响应= response.json() 191,除了ValueError为e:
〜/ anaconda3 / lib / python3.6 / site-packages / requests / models.py在 json(self,** kwargs) 896通过 -> 897 return complexjson.loads(self.text,** kwargs) 898
〜/ anaconda3 / lib / python3.6 / json / init .py加载(s,编码,cls, object_hook,parse_float,parse_int,parse_constant, object_pairs_hook,** kw) 353 parse_constant为None且object_pairs_hook为None而不是kw): -> 354返回_default_decoder.decode(s) 355,如果cls为None:
〜/ anaconda3 / lib / python3.6 / json / decoder.py解码(self,s,_w) 338“”“ -> 339个obj,end = self.raw_decode(s,idx = _w(s,0).end()) 340结尾= _w(s,end).end()
〜/ anaconda3 / lib / python3.6 / json / decoder.py在raw_decode(self,s,idx)中 356,除了StopIteration作为err: -> 357从None提高JSONDecodeError(“期望值”,s,err.value) 358返回obj,结束
JSONDecodeError:预期值:第1行第1列(字符0)
在处理上述异常期间,发生了另一个异常:
StackAPIError回溯(最近一次调用 最后)在() ----> 1个答案= SITE.fetch('questions / {ids} / answers,ids = temp,filter ='withbody')
〜/ anaconda3 / lib / python3.6 / site-packages / stackapi / stackapi.py在 提取(自身,端点,页面,键,过滤器,** kwargs) 第190章 191除了ValueError为e: -> 192引发StackAPIError(self._previous_call,str(e),str(e),str(e)) 193 194尝试:
不确定我在哪里犯错。有人可以帮我吗?
答案 0 :(得分:0)
您每次只能使用ID为 1 的<profileitem ca="<tizen>/tools/certificate-generator/certificates/developer/tizen-developer-ca.cer" distributor="0" key="<tizen-data>/keystore/author/<cert>.p12" password="<strong_password>" rootca=""/>
<profileitem ca="<tizen>/tools/certificate-generator/certificates/distributor/tizen-distributor-ca.cer" distributor="1" key="<tizen>/tools/certificate-generator/certificates/distributor/tizen-distributor-signer.p12" password="tizenpkcs12passfordsigner" rootca=""/>
进行呼叫。
因此,如果您想获取2020年5月9日至2020年5月10日的Python问题,以下是我的建议:
/questions/{ids}/answers
由于您要进行大量请求,因此您可能想要(如果尚未这样做)register your application来获取API,该API可以将您的请求数量(配额)从300增加到10,000。
答案 1 :(得分:-2)
我有类似的问题。就我而言,json原来已损坏。 它使用了像'\ xa0'和'\\ n'这样的字符。必须更换它们。
text = text.replace (u '\ xa0', u '') .replace (u '\\\\ n', u '')
我在https://jsonformatter.org/json-editor网站上发现了错误,该网站向我显示了错误的位置。