在Python或PHP中将CSV转换为用于Chart.js的JSON

1 投票
1 回答
1617 浏览
提问于 2025-04-18 08:43

我有一组查询结果,格式是CSV。

我需要把这些结果处理成可以加载到我的JavaScript图表库Chart.js中,以便绘制结果。

我该如何用Python或PHP把我的CSV文件转换成下面JS所需的正确JSON格式呢?

星期一, 星期二, 星期三,...

314, 225, 666,...

特别要注意的是,整数值不能加引号,否则加载时会出错。我找到的所有函数都把所有标签和数值都用双引号包起来了,比如 "标签", "值":"整数"

    <script>

$("#myLine").dxChart({
    dataSource: [
        {day: "Monday", oranges: 314},
        {day: "Tuesday", oranges: 225},
        {day: "Wednesday", oranges: 345},
        {day: "Thursday", oranges: 464},
        {day: "Friday", oranges: 626},
        {day: "Saturday", oranges: 126},
        {day: "Sunday", oranges: 4246} ],

    series: {
        argumentField: "day",
        valueField: "oranges",
        name: "My oranges",
        type: "bar",
        color: '#ffa500'
    }
});


    </script>

在这里输入图片描述

1 个回答

1

我建议的整体流程是:

  • 读取csv文件
  • 把数据转换成Python的字典或列表结构
  • 将这个数据结构转换成json字符串
  • 把json字符串发送到你的JavaScript代码中

如果你需要帮助来读取csv文件,可以查看这个文档:https://docs.python.org/2/library/csv.html

一旦你有了数据,可以构建一个像这样的结构:

list_of_day_oranges_pairs = [('Monday', 314) ....]  # getting to this format should be easy 
data = [{'day': day, 'oranges': oranges} for (day, oranges) in list_of_day_oranges_pairs]

然后把数据转换成json格式:

data_string = json.dumps(data)

现在data_string已经准备好,可以发送到你的JavaScript代码中了

撰写回答