我在python(Flask + Graphene)中有一个后端服务器,我需要返回一个这样的JSON对象:
{
's1': "Section 1",
's2': "Section 2",
's3': "Section 3",
's4': "Section 4"
}
Run Code Online (Sandbox Code Playgroud)
解析器如下所示:
questionnaire = graphene.types.json.JSONString(
description='JSON result test')
def resolve_questionnaire(self, info: graphql.ResolveInfo):
sections = {
's1': "Section 1",
's2': "Section 2",
's3': "Section 3",
's4': "Section 4"
}
print(json.dumps(sections))
return sections
Run Code Online (Sandbox Code Playgroud)
在控制台中我看到了print(json.dumps(sections))我期望的结果:
user-api_1 | {"s1": "Section 1", "s2": "Section 2", "s3": "Section 3", "s4": "Section 4"}
Run Code Online (Sandbox Code Playgroud)
当我更改为时return sections,return json.dumps(sections)我得到如下结果:

问题是如何在石墨烯解析器中正确返回JSON对象? 我知道有像这里使用的json.replace方法,但我相信我只是以错误的方式生成/传递对象.
我正在使用 c3 构建一个图表,然后使用 d3 在此图表顶部添加一个 div:
请参阅jsfiddle上的工作示例。
var naviChart = d3
.selectAll("#chart")
.append("div")
.attr("class", "hist-future-btn");
naviChart
.append("div")
.text("Hist")
.attr("class", "hist")
.attr(":v-on:click", "showHistChart");
Run Code Online (Sandbox Code Playgroud)
即使代码正确生成(通过 Chrome 检查器检查):
<div class="hist" @click="showHistChart">Hist</div>
Run Code Online (Sandbox Code Playgroud)
该函数showHistChart未被调用。我将上面的行从 Chrome 检查器复制粘贴到 HTML 代码的底部,然后它就可以工作了。所以我们知道 d3 正确生成了代码,但它没有启用 vue 事件
如何启用vue.js动态添加的对象d3.js?
我发现这个主题,有非常相似的问题,但它只回答了启用svg 元素上的事件的热门问题,并在评论中打开了我的问题。