我有一个脚本试图在其中写入名为Alertd_comments.json的.JSON文件。 我可以在Windows上使用它,但是当我将其移至Ubuntu时,标题出现错误。 我对此很陌生,有点卡住。我知道这是列表和字典的问题,但我无法弄清楚。任何帮助将不胜感激
我正在Ubuntu上使用python 3.6。
我当前与此问题有关的代码。
with open(save_path, 'r') as fp:
alerted_comments = json.load(fp)
for comment in comment_stream:
if comment.id in alerted_comments:
continue
if comment.author: # if comment author hasn't deleted
if comment.author.name in ignore_users:
continue
alerted_comments.append(comment.id)
if len(alerted_comments) > 100:
alerted_comments = alerted_comments[-100:]
with open(save_path, 'w') as fp:
json.dump(alerted_comments, fp)
else:
# You'll probably want to be more discerning than "not 200",
# but that's fine for now.
raise SlackError('Request to Slack returned an error %s, the response is:\n%s' % (response.status_code, response.text))
if __name__ == '__main__':
while True:
try:
main(save_path='alerted_comments.json')
except Exception as e:
print('There was an error: {}'.format(str(e)))
time.sleep(60) # wait for 60 seconds before restarting
这意味着要发生的事情是,脚本读取了一个关键字,然后将该关键字的注释ID放入Alerted_comments.json中,以便它记住并且不再重复相同的关键字。
答案 0 :(得分:0)
从错误中我们可以发现,在假设dict
的情况下,我们正在使用list
实例,因此问题出在传递的JSON或我们对其结构的假设中。
从conversation可以清楚地看到初始JSON具有
{}
空对象字面量在其内容中用dict
反序列化后变成Python json.load
,因此如果它应该是一个空数组,我们可以将内容替换为
[]