Skip to content

Commit 553ff6c

Browse files
list under second layer should be expanded as trees. AtsushiSakai#35 (AtsushiSakai#38)
* add support for list data. AtsushiSakai#31 * add test cases. * add test for nested json. * list under second layer should be expanded as trees. AtsushiSakai#35 * limit list view to MAX_N_SHOW_ITEM * avoid naming conflict. * Update pyjsonviewer.py
1 parent c7f2b0f commit 553ff6c

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

pyjsonviewer/pyjsonviewer.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,14 @@ def insert_node(self, parent, key, value):
9999
if value is None:
100100
return
101101

102-
if type(value) is not dict:
103-
if type(value) is list:
104-
value = value[0:MAX_N_SHOW_ITEM]
105-
value = "[" + ",".join(map(str, value)) + "]"
106-
self.tree.insert(node, 'end', text=value, open=False)
102+
if type(value) in (list, tuple):
103+
for index, item in enumerate(value[:MAX_N_SHOW_ITEM]):
104+
self.insert_node(node, index, item)
105+
elif isinstance(value, dict):
106+
for key, item in value.items():
107+
self.insert_node(node, key, item)
107108
else:
108-
for (key, value) in value.items():
109-
self.insert_node(node, key, value)
109+
self.tree.insert(node, 'end', text=value, open=False)
110110

111111
def click_item(self, event=None):
112112
"""

tests/test_pyjsonviewer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def test_dictionary_file():
2323
# print([app.tree.item(item_id, 'text') for item_id in children])
2424

2525
# then
26-
assert len(children) == 31
26+
assert len(children) == 53
2727

2828

2929
def test_list_file():
@@ -55,7 +55,7 @@ def test_nested_file():
5555
print([app.tree.item(item_id, 'text') for item_id in children])
5656

5757
# then
58-
assert len(children) == 33
58+
assert len(children) == 72
5959

6060

6161
def test_search():

0 commit comments

Comments
 (0)