首页 > 解决方案 > 我使用 jsonify 和烧瓶和 python 3 制作的这个 JSON 格式是否正确以制作 D3 图?如果没有,我应该如何格式化它?

问题描述

我有一些从烧瓶发送的熊猫数据框,以便在我的项目中做出反应。这是其中一张表的样子:

Year | Word 1 | Word 2 | Word 3
-------------------------------
1990 | 532    | 2425   | 649   
1991 | 334    | 2789   | 894
1992...etc.

基本上,我有一张表格来衡量多年来在各种文档中使用的几个词。我还有一些其他的表可以用这些词做其他事情。我的 JSON 包含一组 json 对象,每个对象都是一个执行不同操作的表。这就是我的 json 的结构:

[
  {
    "Year": {
      "0": 1990,
      "1": 1991,
      etc.
    },
    "Word 1": {
      "0": 532,
      "1": 334,
      etc.
    },
    "Word 2": {
      "0": 2425,
      "1": 2789,
      etc.
    },
    "word 3": {
      "0": 649,
      "1": 894,
      etc.
    }
  },
  {
    "Year": {
      "0": 1990,
      "1": 1991,
      etc.
    },
    "Word 1": {
      "0": 11.4,
      "1": 8.2,
      etc.
    },
    "Word 2": {
      "0": 79.3,
      "1": 84.5,
      etc.
    },
    "word 3": {
      "0": 20.3,
      "1": 24.9,
      etc.
    }
  }
]

显然我的 JSON 要大得多,里面有更多的年数和更多的数据框。我曾尝试将其带到 D3,但我对 D3 有点缺乏经验,文档并没有帮助向我解释为什么这样的 JSON 不能正确输入到 D3 以及为什么我不能为每个我放入这个 JSON 的数据集。希望对 JSON 以及 D3 如何解释它们有更多了解的人可以帮助我理解为什么这种格式不正确或者我可以如何绘制它们(因为完全诚实,我什至不确定如何做到这一点,因为文档是令人困惑且经常稀缺)。感谢您抽出宝贵时间来帮助我。

标签: pythonjsonpandasflaskd3.js

解决方案


我在这里解释,但看起来 D3 想要一个每行一个对象的列表,就像你从 CSV 文件中获得的一样:

[
  {
    "Year": 1990,
    "Word 1": 531,
    "Word 2": 2425,
    "Word 3": 649
  },
  {
    "Year": 1991,
    "Word 1": 334,
    "Word 2": 2789,
    "Word 3": 894
  },
  ...
]

推荐阅读