предупреждение: неоднозначность синтаксиса - неправильно разделенный номер '3B' в строке 2 <stdin>разбивается на два токена - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь запустить этот файл python. Вывод идет как таковой - см. Прикрепленный скриншот. Когда я использую эту команду python tree_to_graph.py | dot -Tpng -otree.png для получения графика, я получаю это предупреждение, как указано в заголовке. Пожалуйста, смотрите скриншоты ниже.

from __future__ import print_function
import json
import sys


# Tree in JSON format
#s = '{"Harry": {"children": ["Bill", {"Jane": {"children": [{"Diane": {"children": ["Mary"]}}, "Mark"]}}]}}'
s = '{"Harry": {"children": ["3Bi_ll<=0.5 samplesize=10", {"Jane": {"children": [{"Diane": {"children": ["Mary"]}}, "Mark"]}}]}}'
#{'pd_a6 <= 2.5':
# Convert JSON tree to a Python dict
data = json.loads(s)

# Convert back to JSON & print to stderr so we can verify that the tree is correct.
print(json.dumps(data, indent=4), file=sys.stderr)

# Extract tree edges from the dict
edges = []

def get_edges(treedict, parent=None):
    name = next(iter(treedict.keys()))
    if parent is not None:
        edges.append((parent, name))
    for item in treedict[name]["children"]:
        if isinstance(item, dict):
            get_edges(item, parent=name)
        else:
            edges.append((name, item))

get_edges(data)

# Dump edge list in Graphviz DOT format
print('strict digraph tree {')
for row in edges:
    print('    {0} -> {1};'.format(*row))
print('}')

output output

...