#Generating a bunch of smaller files with one master json file

1 messages · Page 1 of 1 (latest)

wild chasm
#
import json
import io
import asyncio

files = []
with open("locales/convert_temperature.json", encoding="utf-8") as f:
  data = json.load(f)

def generate_json(data : dict):
  new_data = {}
  new_data["name"] = data["name"]["text"]
  new_data["description"] = data["command_desc"]["text"]
  new_data["options"] = {}
  new_data["options"]["temperature_unit"] = {}
  new_data["options"]["temperature"] = {}
  new_data["options"]["temperature_unit"]["name"] = data["temperature_unit"]["name"]
  new_data["options"]["temperature_unit"]["description"] = data["temperature_unit"]["description"]
  new_data["options"]["temperature"]["name"] = data["temperature"]["name"]
  new_data["options"]["temperature"]["description"] = data["temperature"]["description"]
  
  new_data["embeds"] = [{}]
  new_data["embeds"][0]["title"] = data["title"]["text"] 
  final_list =  [
  {"name" : data["unit_names"]["c_name"]["text"], "value" : "{temp_celsius} "  + data["c_symbol"]["text"] },
  {"name" : data["f_name"]["text"], "value" : "{temp_fahrenheit} "  + data["f_symbol"]["text"] },
  {"name" : data["k_name"]["text"], "value" : "{temp_kelvin} "  + data["k_symbol"]["text"] },
  {"name" : data["r_name"]["text"], "value" : "{temp_rankine} "  + data["r_symbol"]["text"] },
]
  new_data["embeds"][0]["fields"] = final_list
  new_data["embeds"][0]["footer"] = {"text" : data["desc"]["text"] + " {temperature_unit_value}" }
  new_data["translator_id"] = data["translator_id"]
  new_data["options"]["temperature_unit"]["choices"] = [data["c_name"]["text"], data["f_name"]["text"], data["k_name"]["text"], data["r_name"]["text"]]
  base_data = {"convert_temperature" : new_data}
  return base_data

files = []
for locale in data:
  clean_data = generate_json(data[locale])
  json_string = json.dumps(clean_data, indent=4, ensure_ascii=False)
  stringio_object = io.StringIO(json_string) 
  file=discord.File(stringio_object, filename=f"{locale}.json")
  files.append(file)

for file in files:
  await ctx.send(file=file)
  await asyncio.sleep(5)

yield len(files)
yield "Done"
wild chasm
#

So far I updated it to:

import json
import io
import asyncio

files = []
with open("locales/convert_temperature.json", encoding="utf-8") as f:
  data = json.load(f)

def generate_json(data : dict):
  new_data = {}
  new_data["name"] = data["name"]["text"]
  new_data["description"] = data["command_desc"]["text"]
  new_data["options"] = {}
  new_data["options"]["temperature_unit"] = {}
  new_data["options"]["temperature"] = {}
  new_data["options"]["temperature_unit"]["name"] = data["temperature_unit"]["name"]
  new_data["options"]["temperature_unit"]["description"] = data["temperature_unit"]["description"]
  new_data["options"]["temperature"]["name"] = data["temperature"]["name"]
  new_data["options"]["temperature"]["description"] = data["temperature"]["description"]
  
  new_data["embeds"] = [{}]
  new_data["embeds"][0]["title"] = data["title"]["text"] 
  final_list =  [
  {"name" : data["unit_names"]["celsius"], "value" : "{temp_celsius} "  + data["unit_symbols"]["celsius"]},
  {"name" : data["unit_names"]["fahrenheit"], "value" : "{temp_fahrenheit} "  + data["unit_symbols"]["fahrenheit"]},
  {"name" : data["unit_names"]["kelvin"], "value" : "{temp_kelvin} "  + data["unit_symbols"]["kelvin"]},
  {"name" : data["unit_names"]["rankine"], "value" : "{temp_rankine} "  + data["unit_symbols"]["rankine"]},
]
  new_data["embeds"][0]["fields"] = final_list
  new_data["embeds"][0]["footer"] = {"text" : data["desc"]["text"] + " {temperature_unit_value}" }
  new_data["translator_id"] = data["translator_id"]
  new_data["options"]["temperature_unit"]["choices"] = [name for name in data["unit_symbols"]]
  base_data = {"convert_temperature" : new_data}
  return base_data

files = []
for locale in data:
  clean_data = generate_json(data[locale])
  json_string = json.dumps(clean_data, indent=4, ensure_ascii=False)
  stringio_object = io.StringIO(json_string) 
  file=discord.File(stringio_object, filename=f"{locale}.json")
  files.append(file)

for file in files:
  await ctx.send(file=file)
  await asyncio.sleep(5)

yield len(files)
yield "Done"
#

Ie the code

#

Updated:

import json
import io
import asyncio

files = []
with open("locales/convert_temperature.json", encoding="utf-8") as f:
  data = json.load(f)

def generate_json(data : dict):
  new_data = {}
  new_data["name"] = data["name"]["text"]
  new_data["description"] = data["command_desc"]["text"]
  new_data["options"] = {}
  new_data["options"]["temperature_unit"] = {}
  new_data["options"]["temperature"] = {}
  new_data["options"]["temperature_unit"]["name"] = data["temperature_unit"]["name"]
  new_data["options"]["temperature_unit"]["description"] = data["temperature_unit"]["description"]
  new_data["options"]["temperature"]["name"] = data["temperature"]["name"]
  new_data["options"]["temperature"]["description"] = data["temperature"]["description"]
  
  new_data["embeds"] = [{}]
  new_data["embeds"][0]["title"] = data["title"]["text"] 
  final_list =  [
  {"name" : data["unit_names"]["celsius"], "value" : "{temp_celsius} "  + data["unit_symbols"]["celsius"]},
  {"name" : data["unit_names"]["fahrenheit"], "value" : "{temp_fahrenheit} "  + data["unit_symbols"]["fahrenheit"]},
  {"name" : data["unit_names"]["kelvin"], "value" : "{temp_kelvin} "  + data["unit_symbols"]["kelvin"]},
  {"name" : data["unit_names"]["rankine"], "value" : "{temp_rankine} "  + data["unit_symbols"]["rankine"]},
]
  new_data["embeds"][0]["fields"] = final_list
  new_data["embeds"][0]["footer"] = {"text" : data["desc"]["text"] + " {temperature_unit_value}" }
  new_data["translator_id"] = data["translator_id"]
  new_data["options"]["temperature_unit"]["choices"] = [data["unit_symbols"][name] for name in data["unit_symbols"]]
  base_data = {"convert_temperature" : new_data}
  return base_data

files = []
for locale in data:
  clean_data = generate_json(data[locale])
  json_string = json.dumps(clean_data, indent=4, ensure_ascii=False)
  stringio_object = io.StringIO(json_string) 
  file=discord.File(stringio_object, filename=f"{locale}.json")
  files.append(file)

for file in files:
  await ctx.send(file=file)
  await asyncio.sleep(5)

yield len(files)
yield "Done"
#
import json
import io
import asyncio

files = []
with open("locales/convert_temperature.json", encoding="utf-8") as f:
  data = json.load(f)

def generate_json(data : dict):
  new_data = {}
  new_data["name"] = data["name"]["text"]
  new_data["description"] = data["command_desc"]["text"]
  new_data["options"] = {}
  new_data["options"]["temperature_unit"] = {}
  new_data["options"]["temperature"] = {}
  new_data["options"]["temperature_unit"]["name"] = data["temperature_unit"]["name"]
  new_data["options"]["temperature_unit"]["description"] = data["temperature_unit"]["description"]
  new_data["options"]["temperature"]["name"] = data["temperature"]["name"]
  new_data["options"]["temperature"]["description"] = data["temperature"]["description"]
  
  new_data["embeds"] = [{}]
  new_data["embeds"][0]["title"] = data["title"]["text"] 
  final_list =  [
  {"name" : data["unit_names"]["celsius"], "value" : "{temp_celsius} "  + data["unit_symbols"]["celsius"]},
  {"name" : data["unit_names"]["fahrenheit"], "value" : "{temp_fahrenheit} "  + data["unit_symbols"]["fahrenheit"]},
  {"name" : data["unit_names"]["kelvin"], "value" : "{temp_kelvin} "  + data["unit_symbols"]["kelvin"]},
  {"name" : data["unit_names"]["rankine"], "value" : "{temp_rankine} "  + data["unit_symbols"]["rankine"]},
]
  new_data["embeds"][0]["fields"] = final_list
  new_data["embeds"][0]["footer"] = {"text" : data["desc"]["text"] + " {temperature_unit_value}" }
  new_data["translator_id"] = data["translator_id"]
  new_data["options"]["temperature_unit"]["choices"] = [data["unit_names"][name] for name in data["unit_symbols"]]
  base_data = {"convert_temperature" : new_data}
  return base_data

files = []
for locale in data:
  clean_data = generate_json(data[locale])
  json_string = json.dumps(clean_data, indent=4, ensure_ascii=False)
  stringio_object = io.StringIO(json_string) 
  file=discord.File(stringio_object, filename=f"{locale}.json")
  files.append(file)

for file in files:
  await ctx.send(file=file)
  await asyncio.sleep(5)

yield len(files)
yield "Done"