'raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1, (char 0), Pushshift
I am getting the Error raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
The full Error is:Traceback (most recent call last): File "/Users/rukky/Documents/TCD Masters Dissertation/Mining.py", line 60, in <module> data = getPushshiftData(after, before, sub) File "/Users/rukky/Documents/TCD Masters Dissertation/Mining.py", line 18, in getPushshiftData print(r.json()) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/models.py", line 900, in json return complexjson.loads(self.text, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/Library/Frameworks/Python.framework/Versions/3.9/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)
My code is
def getPushshiftData(after, before, sub):
#Build URL
url = 'https://api.pushshift.io/reddit/search/submission/?size=1000&after='+str(after)+'&before='+str(before)+'&subreddit='+str(sub)
#Print URL to show user
print(url)
#Request URL
r = requests.get(url)
print(r.status_code)
print(r.json())
#Load JSON data from webpage into data variable
data = json.loads(r.text)
#return the data element which contains all the submissions data
return data['data']
And the second part at line 60 is:
data = getPushshiftData(after, before, sub)
# Will run until all posts have been gathered i.e. When the length of data variable = 0
# from the 'after' date up until before date
while len(data) > 0: #The length of data is the number submissions (data[0], data[1] etc), once it hits zero (after and before vars are the same) end
for submission in data:
collectSubData(submission)
subCount+=1
# Calls getPushshiftData() with the created date of the last submission
print(len(data))
print(str(datetime.datetime.fromtimestamp(data[-1]['created_utc'])))
#update after variable to last created date of submission
after = data[-1]['created_utc']
#data has changed due to the new after variable provided by above code
data = getPushshiftData( after, before, sub)
print(len(data))
I got this from code online and the code itself works fine. I've used this piece of code before and it only occassionally threw this error. I've looked at the other questions and tried to debug. The entire JSON prints out in my terminal (meaning it's not empty?)and I receive a 200 code. I assume the issue is somewhere in the loop. I appreciate any help on this.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
