So I have a function that scrapes instagram data and stores the number of likes to a dictionary.I think I have the function set up right but when I try to run a print statement, I keep getting a error that it can't find the file I'm looking for to run through the function.
This is the code I'm using to mount my google drive and set the directory to store my json files. I verified that this is all correct in my drive.
# Mount data location. Do not edit this cell except as indicated.
# Be sure you have a folder in the root of your Google Drive called APRD6342/Data.
# Data files for the course should be uploaded to that folder.
from pathlib import Path
try:
from google.colab import drive
drive.mount('/content/drive')
datadir = Path('drive/My Drive/APRD6342/Data') # you may edit this location ...
except ModuleNotFoundError:
datadir = Path('../../Data') # ... but don't change this!!!
INSTAGRAM_DIR = datadir / 'instagram'
Here is my function:
def engagement(filename, follower_count):
"""Return the brand post engagement for the Instagram metadata file,
filename, given follower_count as the number of Instagram followers for
the brand.
Returns a decimal engagement rate rounded to 4 decimal places. Python's
standard `round` function should be used. E.g.:
>>> engagement('instagram/volvocars.json', volvocars_follower_count)
0.0125
"""
with open(datadir / filename) as f:
for line in f: #for each line in the file
line_object = json.loads(line)
likes = line_object["GraphImages"]["edge_media_preview_like"]["count"] #find count
if num in likes > 1:
engagement.append(i) #add count to engagement
comments = filename["GraphImages"]["edge_media_to_comment"]["count"] #find other count
if num in comments > 1:
engagement.append(i) #add count
engage_perc = sum(engagement)/follower_count #sum all counts and divide by the number of followers
return engage_perc
here is the print statement I'm trying to run and the error:
print('Honda:',
as_percent(engagement(INSTAGRAM_DIR / 'honda.json', honda_follower_count)))
---> 12 with open(datadir / filename) as f:
13 for line in f: #for each line in the file
14 line_object = json.loads(line)
FileNotFoundError: [Errno 2] No such file or directory: 'drive/My Drive/APRD6342/Data/drive/My Drive/APRD6342/Data/instagram/honda.json'
I've ran that mounting code before fine but for some reason my directory is nesting itself or something. Thanks!
when you call the function with
you supply the full path, but then in the function, the path is added again
Pass just the subfolder
instagram
and the file name. Note the docstring - they supply'instagram/volvocars.json'
, so you need to supply'instagram/honda.json'