-
-
Save beugley/ccd69945346759eb6142272a6d69b4e0 to your computer and use it in GitHub Desktop.
def human_readable_to_bytes(size): | |
"""Given a human-readable byte string (e.g. 2G, 10GB, 30MB, 20KB), | |
return the number of bytes. Will return 0 if the argument has | |
unexpected form. | |
""" | |
if (size[-1] == 'B'): | |
size = size[:-1] | |
if (size.isdigit()): | |
bytes = int(size) | |
else: | |
bytes = size[:-1] | |
unit = size[-1] | |
if (bytes.isdigit()): | |
bytes = int(bytes) | |
if (unit == 'G'): | |
bytes *= 1073741824 | |
elif (unit == 'M'): | |
bytes *= 1048576 | |
elif (unit == 'K'): | |
bytes *= 1024 | |
else: | |
bytes = 0 | |
else: | |
bytes = 0 | |
return bytes,size+'B' |
{
"Browser History": [
{
"page_transition": "LINK",
"title": "Google Takeout",
"ptoken": {},
"url": "https://takeout.google.com/takeout/custom/chrome?hl=en-GB&continue=https://myaccount.google.com/dashboard&pli=1",
"client_id": "r0Ye2TDehbGyhWk9nLjzhw==",
"time_usec": 1720603398797893
},
{
"favicon_url": "https://www.gstatic.com/images/branding/product/2x/contacts_2022_96dp.png",
"page_transition": "LINK",
"title": "Google Contacts",
"ptoken": {},
"url": "https://contacts.google.com/u/1/?hl=en-GB&pli=1&pageId=none",
"client_id": "r0Ye2TDehbGyhWk9nLjzhw==",
"time_usec": 1720603379364260
},
{
"page_transition": "LINK",
"title": "Google Contacts",
"ptoken": {},
"url": "https://contacts.google.com/u/1/?hl=en-GB&pli=1&pageId=none",
"client_id": "r0Ye2TDehbGyhWk9nLjzhw==",
"time_usec": 1720603379034161
},
{
"favicon_url": "https://www.gstatic.com/images/branding/product/2x/contacts_2022_96dp.png",
"page_transition": "LINK",
"title": "Merge and fix",
"ptoken": {},
"url": "https://contacts.google.com/suggestions?hl=en-GB",
"client_id": "r0Ye2TDehbGyhWk9nLjzhw==",
"time_usec": 1720603370379167
},
{
"favicon_
Based on your code, I managed to handle the way docker returns the sizes as follows: