【问题标题】:How do I import a PostgreSQL table into d3 for use?如何将 PostgreSQL 表导入 d3 以供使用?
【发布时间】:2019-07-12 04:42:07
【问题描述】:

我目前正在使用 d3.csv 导入表格以在图表中使用,但是,我想使用 Postgres 数据库中的表格。我将数据库连接到 Django,但是我不确定我可以使用什么 d3 函数从数据库中获取表并使用它而不是 CSV 文件。

     d3.csv("[link]", function(data) {
        console.log(data);

Console.log(data) 返回一个如下所示的表:

截图如下:

【问题讨论】:

    标签: sql django database postgresql d3.js


    【解决方案1】:

    自己解决了,基本上我做的是views.py return JsonResponse(serializers.serialize('json', myData), safe=False) 其中 myData = (model).objects.all()

    然后我所要做的就是在 javascript 中解析数据。

    【讨论】:

      【解决方案2】:

      不确定这是否适用,但 Postgres 提供了很多用于在返回之前格式化数据的工具。例如,这是一个基于名为“mockit”的表的简单示例,我在其中有一些示例数据:

      SELECT row_to_json(mockit_row) AS mockit_objects
      FROM
            (SELECT   first_name, last_name, email
             FROM     mockit
             WHERE    gender = 'Male'
             LIMIT 10) AS mockit_row;
      

      你得到的是每行一个对象,作为一个 JSON 对象

      {"first_name":"Farlay","last_name":"Creegan","email":"fcreegan0@github.io"}
      {"first_name":"Holt","last_name":"Cicco","email":"hcicco1@scribd.com"}
      

      等等

      如果您想要一个带有对象数组的单个 JSON 对象:

      SELECT array_to_json(array_agg(row_to_json(mockit_row))) AS mockit_objects
      FROM
            (SELECT   first_name, last_name, email
             FROM     mockit
               WHERE  gender = 'Male'
             LIMIT 10) AS mockit_row;
      

      我记得,D3(我想念使用 D3 的工作)将事物脱水成对象数组。所以你可以提供格式的数据,如果它更容易的话。 CSV 和 TSV 是较小的线路格式,但我不认为 (?) Postgres 中目前不支持将结果作为 SQL 调用输出到该格式。

      Postgres 快得快,所以最好将处理推到它上面。

      【讨论】:

        猜你喜欢
        • 2020-07-28
        • 1970-01-01
        • 2022-11-21
        • 1970-01-01
        • 1970-01-01
        • 2021-10-08
        • 1970-01-01
        • 2020-03-23
        • 2017-07-17
        相关资源
        最近更新 更多