这是json
{u'skeleton_horde': 2, u'baby_dragon': 3, u'valkyrie': 5, u'chr_witch': 1, u'lightning': 1, u'order_volley': 6, u'building_inferno': 3, u'battle_ram': 2}
我正在尝试使列表看起来像这样
skeleton_horde baby_dragon valkyrie lightning order_volley building_inferno
这是python
print(x['right']['troops'])
令人惊讶的是没有关于如何获取对象的n元素(不是数组)的文档。我试过了:
print(x['right']['troops'][1])
但它不起作用。
答案 0 :(得分:2)
您希望使用dict.keys()
来获取dict键值的列表*:
print(list(x['right']['troops'].keys()))
*它是actually a view,在Python 3中。它将是Python 2中的列表。
答案 1 :(得分:2)
没有办法让dict
离谱器中的第n个项目(也许你已经将Python dicts与JavaScript对象混为一谈),原因很简单,因为它们是无序的。
但是有一种字典可以维护其键的顺序,恰当地命名为OrderedDict
。
正如另一位评论者所指出的那样,是解决您的问题的方法,但它仍然不会按照定义的顺序为您提供密钥:
' '.join(obj['right']['troops'])
在最新版本的CPython(3.6)中,字典键确实是有序的。我不确定我是否依赖于特定于实现的行为,或者您是否需要在这种情况下订购密钥,但我们很高兴知道。转发@ScottColby向我指出这个!
答案 2 :(得分:2)
首先,您要提取密钥:
x['right']['troops']
然后你想用散布的空格加入它们
' '.join(x['right']['troops'])
这将与您所拥有的顺序不同,因为Python字典是无序的。