i have a set of JSON files in a folder.
Sample files:
-2022_06_13_07_14_f71cd512135bdab9.json
-2022_06_13_07_1421_f71cd512135bdab9.json
-2022_06_13_07_12314_f71cd512135bdab9.json
-2022_06_14_132_14_f71cd512135bdab9.json
-2022_06_14_74647_14_f71cd512135bdab9.json
Instead of reading all files at once, I need to read them day-wise.
ex:2022_06_13_07_14_f71cd512135bdab9.json corresponding to 2022_06_13.
like wise I need to read all the JSON files and do the changes in Daywise batches.
read all JSON files in 2022_06_13 first then all the JSON files in 2022_06_14 and so on. i thought to apply wildcard with looping day wise list.
my issue with the below line. How do I add a wild card to find all JSON files related to a particular date?
json_files = glob.glob(os.path.join(path_to_json, 'day*.json'))
current code:
start = datetime.datetime(2022, 8, 25)
end = datetime.datetime(2022, 12, 25)
datelist = pd.date_range(start, end)
path_to_json = r'C:\Users\Admin\INPUT'
for a in datelist:
day=str(a)[:10].replace('-', '_')
json_files = glob.glob(os.path.join(path_to_json, 'day*.json'))
for i in json_files:
with open(i,'r') as fi:
dict = json.load(fi)
dict[0]["Name"] = "NETFLIX"
fi.close()
l= i.rsplit('\\', 1)[1]
Output_URL="C:\\Users\\Admin\\OUTPUT\\Netflix\\" l
with open(Output_URL, "w ") as f:
json.dump(data, f)
CodePudding user response:
Change this:
json_files = glob.glob(os.path.join(path_to_json, 'day*.json'))
to this:
json_files = glob.glob(os.path.join(path_to_json, f"{a.strftime('%Y_%m_%d')}*.json"))
This will take date a
and turn it into a string that is similar to the one in your files. Leave the asterisk after it as a wildcard and you should get all files that match date a
everytime.