Following code was used in Thonny (offline) IDE and it works fine. But when I use the same code in trinket it gives me an error. What could be the reason?
def compare_prices(product_laughs,product_glomark):
html_lau=requests.get(product_laughs).content
html_glo=requests.get(product_glomark).content #get the content of the site
soup_lau=BeautifulSoup(html_lau,'html.parser')
soup_glo=BeautifulSoup(html_glo,'html.parser')
glo_products=soup_glo.find("script", type="application/ld+json")
glomark_content=glo_products.text #glomark product list
print(glomark_content)
productList=json.loads(glomark_content)
This last statement gives the following error
Traceback (most recent call last):
File "/tmp/sessions/96aa9a060805dc3c/main.py", line 4, in <module>
compare_prices(laughs_coconut,glomark_coconut)
File "/tmp/sessions/96aa9a060805dc3c/compare_prices.py", line 27, in compare_prices
productList=json.loads(glomark_content)
File "/usr/lib/python3.9/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Related
So I got the JSONDecodeError in json.load() while everything seems to be right.
My code:
def write(name: str, text):
try:
with open("C:/Users/FlexGames/Desktop/Programming/Discord Bot/New Bot/banned.json", "w") as bannedload:
bannedjson[name] = text
json.dump(bannedjson, bannedload)
except NameError:
_load(jsonfile)
return write(name, text, jsonfile)
def _load():
global bannedjson, bannedload
with open("C:/Users/FlexGames/Desktop/Programming/Discord Bot/New Bot/banned.json", "r") as bannedload:
bannedjson = json.load(bannedload)
JSON File:
{
"banned": []
}
Error Output:
Traceback (most recent call last):
File "C:\Users\Try Me Btch\AppData\Local\Programs\Python\lib\site-packages\discord\client.py", line 333, in _run_event
await coro(*args, **kwargs)
File "C:\Users\FlexGames\Desktop\Programming\Discord Bot\New Bot\main.py", line 77, in on_message
await ban.user(message)
File "C:\Users\FlexGames\Desktop\Programming\Discord Bot\New Bot\New_Functions\ban.py", line 11, in user
jsonhandle.write("banned", int(content[1]))
File "C:\Users\FlexGames\Desktop\Programming\Discord Bot\New Bot\Functions\jsonhandle.py", line 27, in write
_load(jsonfile)
File "C:\Users\FlexGames\Desktop\Programming\Discord Bot\New Bot\Functions\jsonhandle.py", line 42, in _load
bannedjson = json.load(bannedload)
File "C:\Users\Try Me Btch\AppData\Local\Programs\Python\lib\json\__init__.py", line 293, in load
return loads(fp.read(),
File "C:\Users\Try Me Btch\AppData\Local\Programs\Python\lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "C:\Users\Try Me Btch\AppData\Local\Programs\Python\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\Try Me Btch\AppData\Local\Programs\Python\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Most "solutions" I found in the internet were faults like .loads() or large and lower case faults or something like this but not this error in this context
So the solution was like SiHa said something was broken with the path, I don't know what exactly but as I removed the whole path but the file it worked 🤷♂️
I have a school schedule in my program, and when I use
import json
if choice == "Schedule":
with open("Schedule.json", "r") as schedule_file:
schedule_output = json.load(schedule_file)
schedule_choice = input('\nDo you want to exit or change the schedule?\n')
The problem comes up:
Traceback (most recent call last):
File "practice.py", line 92, in <module>
schedule_output = json.load(schedule_file)
File "C:\Users\Samwise\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 293, in load
return loads(fp.read(),
File "C:\Users\Samwise\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "C:\Users\Samwise\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\Samwise\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
I tried to change the encoding, but it didn't help me.
I have scraped some html and want to create a json doc. Here is the code I currently have:
with open(path.join(path.abspath(path.curdir),'Results\\html.txt'), 'r') as file:
for line in file.readlines():
if not line.strip():
continue
if re.findall(r'\"aggregateRating.*\"telephone\"',line):
reviews = re.findall(r'\[.*\]', line)
json_data = json.loads(str(reviews))
The error I get is: json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)
Any help is appreciate. I have been stuck on this for awhile..
Your code is trying to load the string representation of a list as a valid json string; which of course will not work.
It is the same as trying to do this:
>>> json.loads(str(['hello world']))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)
If you are trying to write the result as json; you need to do the opposite of loads, which is dumps:
>>> json.dumps(str(['hello world']))
'"[\'hello world\']"'
for i in os.listdir("./saves/"):
path = './saves/' + i
if path.endswith(".json"):
with open(path, "r"):
config = json.loads(path)
ctime = config["Creation Time"]
Okay, this is the small code that's causing errors. I'm getting a json decoder error Here is the callback
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 1550, in __call__
return self.func(*args)
File "/Users/acrobat/PycharmProjects/Jan9coderun/TranslatorVCS/Quiz.py", line 318, in saveGame
config = json.loads(path)
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
My saves folder is in the same working directory as my code and has one quiz.json, one notes.txt, and one __init__.py file.
I make a requests on IMDb to fetch movie information into JSON. Here's my code:
import json
import requests
url = "http://www.imdb.com/title/tt3385516/"
re = requests.get(url).json()
It get me an error which I don't know what to do with it:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 799, in json
return json.loads(self.text, **kwargs)
File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 8 column 1 (char 7)
I tried using
re = requests.get(url)
data = json.loads(re.text)
But it get me another error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 8 column 1 (char 7)
Response is HTML, not JSON so it can't be JSON decoded:
>>> r = requests.get('http://www.imdb.com/title/tt3385516/')
>>> r.headers['content-type']
'text/html;charset=UTF-8'