我有两个数据帧(节点和链接),它们由Pandas的to_json调用json化:
links = links.to_json(orient='records')
nodes = nodes.to_json(orient='records')
这些调用的输出似乎与预期一致:
链接:
^{pr2}$节点:
[{"id":"Michael Scott"}, {"id":Jim Halpert"}]
然后,我将这些JSON dicts组合成一个对象(在d3 force-directed图中使用):
j = {"nodes":nodes, "links":links}
现在我有两个问题:
j
是用方括号括起来的单引号进行双重编码的{'nodes':
'[{"id":"Michael Scott"}, {"id":Jim Halpert"}]',
'links':
'[{"source":"Michael Scott", "target":"Jim Halpert", "value":1}]'
}
似乎没有一个很好的方法来将此写入文件。我不能使用to_json
的内置路径,因为我必须分离已经JSONified的数据帧。我试过了:
jsonOut = open('test.json', 'w')
jsonOut.write(json.dumps(j))
这也会导致最终文件中的双编码格式,只是使用了额外的双引号而不是单引号。在
问题:在合并两个已JSONified的Pandas数据帧时,如何避免对生成的JSON文件进行双重编码?如何写出结果文件?在
谢谢你的任何见解!在
Pandas方法^{} 转换为一个JSONstring,这是添加到外部字典
j
的值。在因此,此代码将
DatFrame
序列化为string
:如果您检查
^{pr2}$links
的类型,它将是str
:请尝试改用^{} 。在
也许你可以给我们看更多的代码。 我试图重现你的问题,但我没有遇到和你一样的问题。 我的代码:
我的输出:
^{pr2}$我还生成了一个json文件:
你的问题可能是如何在pd.to_json()
朱利安
相关问题 更多 >
编程相关推荐