gkdivya commited on
Commit
c70e992
·
verified ·
1 Parent(s): 4e1cf5b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -6
app.py CHANGED
@@ -65,17 +65,42 @@ def json_to_table(obj):
65
 
66
 
67
  def to_table_from_kys(kys_json):
 
 
 
 
68
  try:
69
- items = kys_json.get("data") if isinstance(kys_json, dict) else kys_json
70
- if isinstance(items, dict) and "data" in items:
71
- items = items["data"]
72
- if not items:
 
 
 
 
73
  return pd.DataFrame()
74
- return pd.json_normalize(items)
75
- except Exception:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  return pd.DataFrame()
77
 
78
 
 
79
  def search_workflow(school_name, state_name, search_key, use_search, use_kys):
80
  out = {"kys": None, "search": None, "suggestions": []}
81
  payload_text = f"{school_name or ''} {state_name or ''} UDISE code".strip()
 
65
 
66
 
67
  def to_table_from_kys(kys_json):
68
+ """
69
+ Convert KYS JSON to a simplified pandas DataFrame
70
+ showing only a few important fields from content[].
71
+ """
72
  try:
73
+ # Step 1: Extract the list under data.content
74
+ items = (kys_json.get("data", {}) or {}).get("data", {})
75
+ content = items.get("content") if isinstance(items, dict) else None
76
+ if not content:
77
+ # fallback if structure slightly differs
78
+ content = kys_json.get("content") or []
79
+
80
+ if not isinstance(content, list) or not content:
81
  return pd.DataFrame()
82
+
83
+ # Step 2: Filter only required columns
84
+ filtered = []
85
+ for rec in content:
86
+ filtered.append({
87
+ "School Name": rec.get("schoolName"),
88
+ "School ID": rec.get("schoolId"),
89
+ "Pincode": rec.get("pincode"),
90
+ "State": rec.get("stateName"),
91
+ "District": rec.get("districtName"),
92
+ "Management Type": rec.get("schMgmtType")
93
+ })
94
+
95
+ # Step 3: Convert to DataFrame
96
+ return pd.DataFrame(filtered)
97
+
98
+ except Exception as e:
99
+ print("Error parsing KYS JSON:", e)
100
  return pd.DataFrame()
101
 
102
 
103
+
104
  def search_workflow(school_name, state_name, search_key, use_search, use_kys):
105
  out = {"kys": None, "search": None, "suggestions": []}
106
  payload_text = f"{school_name or ''} {state_name or ''} UDISE code".strip()