Python Pandas将SQL查询结果转为Chart.js兼容JSON格式求助
把Pandas查询结果转成Chart.js可用的JSON格式
嘿,作为Python和Pandas新手,能想到用pandasql来处理查询已经很棒啦!要把你的查询结果转成Chart.js需要的标签+值格式其实很简单,Pandas和Python的json模块就能搞定,我给你一步步拆解:
完整修改后的代码
首先,把你的现有代码和转换逻辑整合起来,直接用下面的代码就行:
import pandasql as pdsql import json # 你的SQL查询(建议把变量名从str改成query,避免和内置函数重名) query = """select DISTINCT File_type,count(File_type) as files from final_df where Search_String='amy' group by File_type """ result = pdsql.sqldf(query, locals()) # 组装成Chart.js需要的结构:标签数组 + 数值数组 chart_data = { "labels": result["File_type"].tolist(), # 提取文件类型作为标签 "data": result["files"].tolist() # 提取对应的计数作为数值 } # 转成JSON字符串(直接给Chart.js用) json_output = json.dumps(chart_data) # 可以打印看看结果,确认格式是否正确 print(json_output)
关键步骤解释
tolist()方法:把Pandas DataFrame的列转换成普通的Python列表,这正是Chart.js需要的数组格式。- 组装字典:用
labels和data作为键(这两个键名是Chart.js常用的,你也可以根据自己的配置调整),对应的值就是刚才得到的列表。 json.dumps():把Python字典转换成JSON字符串,这样你可以直接把这个字符串传给前端的Chart.js,或者保存成JSON文件使用。
举个例子,如果你的查询结果是:
| File_type | files |
|---|---|
| 5 | |
| DOCX | 3 |
| TXT | 2 |
转换成的JSON会是这样:
{"labels": ["PDF", "DOCX", "TXT"], "data": [5, 3, 2]}
这个格式完全符合Chart.js的数据源要求~
内容的提问来源于stack exchange,提问作者Lasit Pant
相关产品推荐
相关产品推荐

