FastAPI භාවිතයෙන් API එකක් ගොඩනැගීමට Pandas DataFrame එකක් රැගෙන ආ විට, NaN (Not a Number) අගයන් නිසා "Out of range float values are not JSON compliant" යන දෝෂයක් බොහෝ වෙලාවේ මතුවේ. JSON ප්රමිතිය NaN අගයන්ට ඉඩ නොදෙයි, ඒ නිසා FastAPI‑ේ Pydantic පද්ධතිය 500 Internal Server Error එකක් දුන්හ.
මෙම ගැටළුවට මුලින්ම කරුණාකර DataFrame එකේ NaN අගයන් හඳුනාගැනීමයි. Pandas හි fillna() හෝ where() මාර්ගයෙන් ඒ අගයන් None, හිස් string හෝ ඔබට කැමති වෙනත් JSON‑ට අනුකූල අගයක් සමඟ ප්රතිස්ථාපනය කළ හැක. මෙය කරාම DataFrame එක JSON ලෙස පරිවර්තනය කිරීමේදී තවත් ගැටළුවක් නොමැත.
ඊළඟට, NaN‑රහිත DataFrame එක to_dict(orient='records') භාවිතයෙන් ලැයිස්තුවක් ලෙස පරිවර්තනය කරයි. එවිට ලැබෙන ලැයිස්තුව API පිළිතුර ලෙස සෘජුවම ආපසු ලබා දිය හැක. පහත කේත උදාහරණය තුළ මෙම පියවර සියල්ලක් එකතුවක් ලෙස දක්වා ඇත.
උදාහරණ කේතය
```python import pandas as pd, numpy as np from fastapi import FastAPI app = FastAPI() @app.get("/data") def read_data(): df = pd.DataFrame({"A": [1, 2, np.nan, 4], "B": [5, np.nan, 7, 8]}) df_filled = df.where(pd.notnull(df), None) data = df_filled.to_dict(orient='records') return data ```
ශ්රී ලංකාවට ඇති වැදගත්කම
- සිසුන් – දත්ත විශ්ලේෂණ පාඨමාලාවලදී NaN‑ගැටළුවට මුහුණ දීමේදී ප්රායෝගික උදාහරණයක් ලබා ගනී.
- ඩෙවලපර්ලා – FastAPI සමඟ Pandas භාවිතා කරමින් නිර්මාණය කරන API‑වල ගුණාත්මකභාවය වැඩි කරයි, දෝෂ මූලික කරුණු ඉක්මනින් හඳුනාගැනීමට හැකියාව ලැබේ.
- ව්යාපාර – දත්ත විශ්ලේෂණ සහ රියල්‑ටයිම් API සේවාවන්හි NaN‑රහිත JSON ප්රතිචාර ලබා දීමෙන් පාරිභෝගික අත්දැකීම සහ තීරණ ගැනීමේ වේගය වැඩිවේ.
අවසානයේ, NaN අගයන් JSON‑ට අනුකූල නොවන බව මතක තබා, where(pd.notnull(df), None) වැනි සරල ක්රමයක් භාවිතා කිරීමෙන් FastAPI‑ේ API‑වල ස්ථාවරතාවය සහ විශ්වාසනීයතාවය වැඩි කරගත හැක. ඔබේ පරිගණක වැඩසටහන් වල මෙය අත්හදා බලන්න – තේරුම් ගත හැකි ප්රතිචාරයක් ඔබේ පාරිභෝගිකයන්ට ලබා දීමට දැන් ඉතා පහසුයි.