У меня есть два кадра данных (узлы и ссылки), которые JSONified вызовом to_json Pandas:
links = links.to_json(orient='records')
nodes = nodes.to_json(orient='records')
Результат этих вызовов выглядит так, как ожидалось:
Ссылки:
[{"source":"Michael Scott", "target":"Jim Halpert", "value":1}]
Узлы:
[{"id":"Michael Scott"}, {"id":Jim Halpert"}]
Затем я объединяю эти JSON-слова в один объект (для использования в принудительном графе d3):
j = {"nodes":nodes, "links":links}
Теперь у меня две проблемы:
- Объект JSON
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))
Это также приводит к двойному кодированию в финальном файле, только с дополнительными двойными кавычками вместо одинарных.
Вопрос. Как избежать двойного кодирования результирующих файлов JSON при объединении двух фреймов данных Pandas, которые были преобразованы в JSON? И как мне записать полученный файл?
Спасибо за любое понимание, которое у вас может быть!
json.dumps()
выглядит нормально; какая проблема у тебя с ним? 12.06.2017