# app_logic.py import requests import json from py2neo import Graph, Node, Relationship def run_my_application(): """ Fetch and process a remote JSON file. Replace this with your real application logic. """ json_file_paths = ["https://arinsight.co/skills/Education%20and%20Training_skills.json"] # Connection to Neo4j graph = Graph("bolt://20.64.235.115:7687", auth=("neo4j", "123456789")) # Read the JSON file # json_file_path = ["Engineering_skills.json", "Energy and Utilities_skills.json", "Electrical Engineering_skills.json"] # graph.delete_all() for file in json_file_path: with open(file, "r") as file: data = json.load(file) # Clear the graph database before starting # Create graph nodes and relationships for entry in data: primary_skill = entry["Primary Skill"] secondary_skill = entry["Secondary Skill"] primary_description = entry.get("Description", "") educational_alignment = entry.get("Educational Alignment", "") curriculum_areas = "; ".join(entry.get("Curriculum Areas", [])) tertiary_skills = entry["Tertiary Skills"] # Create or get the Primary Skill node primary_node = Node("PrimarySkill", name=primary_skill, description=primary_description) graph.merge(primary_node, "PrimarySkill", "name") # Create the Secondary Skill node secondary_node = Node( "SecondarySkill", name=secondary_skill, description=primary_description, educational_alignment=educational_alignment, curriculum_areas=curriculum_areas, ) graph.merge(secondary_node, "SecondarySkill", "name") # Relationship: PrimarySkill -> has_secondary -> SecondarySkill relationship = Relationship(primary_node, "HAS_SECONDARY", secondary_node) graph.merge(relationship) # Create Tertiary Skills nodes and relationships for tertiary_skill in tertiary_skills: tertiary_node = Node("TertiarySkill", name=tertiary_skill, description="") graph.merge(tertiary_node, "TertiarySkill", "name") # Relationship: SecondarySkill -> has_tertiary -> TertiarySkill tertiary_relationship = Relationship(secondary_node, "HAS_TERTIARY", tertiary_node) graph.merge(tertiary_relationship) return "Graph database has been populated." # for file_url in json_file_paths: # # Fetch the content from the URL # response = requests.get(file_url) # # Raise an error if the request failed # response.raise_for_status() # # Parse the JSON content # data = response.json() # # Assuming you want to return the 'Primary Skill' of the first item # return data[0]['Primary Skill']