我有一个名为dict
的{{1}},其中有一个名为data
的{{1}}映射到包含key
个对象的clubs
。我想将list
dict
中的每个对象添加到新的clubs
。
我可以遍历list
并创建一个新的,但list
仅包含list
对象的arr
个名称。如何将整个dict对象添加到新列表中,而不仅仅是键名?基本上我想要key
dict中的列表。
这就是我的dict
列表的外观:
clubs
这是我的实施:
arr
我不明白为什么我只获得字符串(键名),在Objective-c中它可以工作。(['key1', 'key2', 'key1', 'key2', 'key1', 'key2', 'key1', key2]
是arr = []
for item in data['clubs']:
arr.extend(item)
print (len(arr))
print (arr)
,data['clubs']
是{{ 1}}来自list
的obj,我添加到名为item
的新dict
。)
以下是原始(json)数据的外观:
list
我想要这样的事情:
list
答案 0 :(得分:1)
arr.extend(item)
会尝试将item
解释为sequence
,并将该序列中的所有项目添加到arr
。要添加单个元素,请使用append
。
arr = []
for item in data['clubs']:
arr.append(item)
print(arr)
但是,你可以写:
print(list(data['clubs']))
答案 1 :(得分:1)
您的JSON已经是一个键/值对,其值为python list
。要将其提取到自己的列表中,只需从键中分配:
arr = data['clubs'] # returns the list associated with this key!
如果您需要对list / dict中的项目进行任何其他处理,则可能更有用的替代方法:
arr = [{}]* len(data['clubs'])
for k, v in enumerate(data['clubs']):
arr[k] = v
print(arr)
应该导致:
[
{'type': 'bar',
'location': 'Dallas',
'id': '013325K52'},
{'type': 'restaurant',
'location': 'Dallas',
'id': '763825X56'}
]