Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这是一个json.decoder错误吗?这是什么意思?_Python_Json - Fatal编程技术网

Python 这是一个json.decoder错误吗?这是什么意思?

Python 这是一个json.decoder错误吗?这是什么意思?,python,json,Python,Json,在这里,我的python代码一直出现这个错误- Traceback (most recent call last): File "/Users/ragz/cowin.py", line 70, in <module> vaccine_check() File "/Users/ragz/cowin.py", line 43, in vaccine_check data = json.load(file) File &q

在这里,我的python代码一直出现这个错误-

Traceback (most recent call last):
  File "/Users/ragz/cowin.py", line 70, in <module>
    vaccine_check()
  File "/Users/ragz/cowin.py", line 43, in vaccine_check
    data = json.load(file)
  File "/usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load
    return loads(fp.read(),
  File "/usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 340, in decode
    raise JSONDecodeError("Extra data", s, end)
有人知道如何解决这个问题吗?我还想知道,如果有人知道,是否有一种方法可以无限循环它。

这是错误的(mode
a
):

如果不将内容设置为非json,则无法附加到json文件

每次编辑文件内容或将其另存为新的json


注意:您可以使用
json.dump
而不是
file.write
json.dumps

代码无关。额外数据意味着在有效的json流(您没有显示)之后有一些内容可用的_中心的内容是什么?@aSaffary这些内容只是我周围可用医院的json数据。@Jean Françoisfare我很抱歉。。。不遵守??对python和json来说是相当陌生的。基本上,假设这个json:
{“test”:5}
。你有一个有效的JSON,但是在它后面有一些东西,比如:
{“test:5}hello
或者
{“test”:5}{“x”:true}
(缺少逗号)@trashflatterdevum那么我应该更改什么?@trashflatterdev将您的open中的“a”更改为“w”。根据您的响应内容,您可能需要将编码声明为“utf-8”。嘿-我还尝试了无限循环-它返回了一个不同的错误-您知道怎么做吗?顺便说一句,我很抱歉打扰您…这是j写起来真的很有趣:)@trashflatterdev你需要用新代码和错误更新你的问题,还有一个保存的json文件内容的例子。我可以创建一个新问题并给你链接吗????
from cowin_api import CoWinAPI
import json
import datetime
import numpy as np 
import os
from twilio.rest import Client
import selenium
from selenium import webdriver
import time
import io
import requests
from selenium.common.exceptions import ElementClickInterceptedException
from selenium.webdriver.common.keys import Keys
from threading import Thread

state_id = '21'

district_id = '395'

min_age_limit = 18

time = datetime.datetime.now()

cowin = CoWinAPI()


def vaccine_check():

    try:
        available_centers = cowin.get_availability_by_district(district_id)

    #outputing it to a json file and bringing it back

        json_output = json.dumps(available_centers, indent=4)

        f = open(f'tests/vaccinecheck[{time.strftime("%b %d %Y %H|%M")}].json', 'a')

        f.write(json_output)
        f.close()

        with open(f.name) as file:
            data = json.load(file)

        n = np.arange(100)

        for x in np.nditer(n): 

            if data["centers"][x]["sessions"][0]["min_age_limit"] == 45:
                print('')   
            else:
                print(f'[{time.strftime("%b %d %Y %H:%M")}]', data["centers"][x]["name"], '-- vaccines:', data["centers"][x]["sessions"][0]['available_capacity'], '-- age-limit:', data["centers"][x]["sessions"][0]["min_age_limit"])
                if data["centers"][x]["sessions"][0]["available_capacity"] >= 1:
                    twilio_send()
    except IndexError: # catch the error
        pass # pass will basically ignore it

def twilio_send():

    client = Client()

    from_whatsapp_number='whatsapp:TWILIO NUMBER'
        
    to_whatsapp_number='whatsapp:PHONE NUMBER GOES HERE'

    client.messages.create(body='VACCINE AVAILABLE!',
                       from_=from_whatsapp_number,
                       to=to_whatsapp_number)

vaccine_check()
    
f = open(f'tests/vaccinecheck[{time.strftime("%b %d %Y %H|%M")}].json', 'a')