これは、あなたが達成しようとしている私の理解の例です。これは、最も単純なListView の例に基づいています。提供された例から拡張された JSON バージョンを作成したことに注意してください。また、URL を使用する場合は、2 つのコメント行を置き換える必要があります。json をロードする方法はload
(io 入力の場合) であり、loads
(文字列入力の場合) ではありません。
from kivy.uix.listview import ListView
from kivy.uix.gridlayout import GridLayout
import json
import urllib2
class MainView(GridLayout):
def __init__(self, **kwargs):
kwargs['cols'] = 2
super(MainView, self).__init__(**kwargs)
the_string_json = '{"meta": {"previous": null, "total_count": 8, "offset": 0, "limit": 20, "next": null}, "objects": [{"id": 1, "page_count": 155, "description": "Cool book", "title": "Kivy book 1"}, {"id": 1, "page_count": 155, "description": "Cool book", "title": "Kivy book 2"}, {"id": 1, "page_count": 155, "description": "Cool book", "title": "Kivy book 3"}]}'
the_dict = json.loads(the_string_json)
# Substitute the previous two lines for this ones:
# the_io_json = urllib2.urlopen('mysite.com/api/books/?format=json')
# the_dict = json.load(the_io_json)
list_view = ListView(
item_strings=[book['title'] for book in the_dict['objects']])
self.add_widget(list_view)
if __name__ == '__main__':
from kivy.base import runTouchApp
runTouchApp(MainView(width=800))