在Python数组中使用通配符?

时间:2015-12-16 22:43:53

标签: python

美好的一天。 我似乎无法找到这个问题的明确答案。我试图破译一个大的JSON文件,但我不知道数据的确切标题,所以我想使用通配符。

我尝试过使用' [*]' ' []'我能想到的任何其他事情 - 没有运气!

现在我的代码看起来像这样:

import json
from pprint import pprint

with open('data.json') as data_file:    
    data = json.load(data_file)

pprint(data['Descriptions']['WILDCARD']['name'])

我使用的是python版本2.7.1,但也有3.3。我可能这样做完全错了......

任何帮助表示赞赏! : - )

3 个答案:

答案 0 :(得分:4)

没有这样的事情。您需要查看data['Descriptions'].values()中的所有项目并检查

  1. 确保它是一个字典。
  2. 确保其中包含'name'字段。
  3. 完成这些检查后,您可以将其打包到列表中。这是一个列表理解,应该完成工作...(我认为: - )......

    names = [d['name'] for d in data['Descriptions'].values()
             if isinstance(d, dict) and 'name' in d]
    

答案 1 :(得分:0)

#include <iostream> using namespace std; struct Node { Node **child; int data; }; class Tree { public: Node *root; Tree() { root = NULL; } private: void add(Node *r, int data, int size) { if (r == NULL) { Node *newnode = new Node; newnode->child = new Node*[size]; for (int i = 0; i < size; ++i) { newnode->child[i] = new Node; newnode->child[i]->child = 0; } newnode->data = data; r = newnode; } } public: void add(int data, int size) { add(root, data, size); } }; int main() { Tree t; t.add(5, 20); cout << t.root->data << endl; return 0; } 已实施为something[*].x

修改

如果[item.x for item in something]something,则上述情况属实。对于字典,它是:

list

答案 2 :(得分:0)

我来晚了,但是我建议在使用json对象或API调用时不要使用 pprint

执行类似## print(json.dumps(data [key],indent = 4))###