Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中迭代多维json_Json_Python 2.7_Iteration - Fatal编程技术网

在python中迭代多维json

在python中迭代多维json,json,python-2.7,iteration,Json,Python 2.7,Iteration,很抱歉发布了错误的格式,希望现在我的问题是明确的。 我正在解析一个JSON,它基本上是我的框架的一个配置文件。 这就是它的样子: 我的代码: def makeCombination(): data = schemaConfig["PostData"] out_json = [] for v1, v2, v3, v4, v5, v6 in product(data['size']['testing_type']['random'], data['start_index']['testing_ty

很抱歉发布了错误的格式,希望现在我的问题是明确的。 我正在解析一个JSON,它基本上是我的框架的一个配置文件。 这就是它的样子:

我的代码:

def makeCombination():
data = schemaConfig["PostData"]
out_json = []
for v1, v2, v3, v4, v5, v6 in product(data['size']['testing_type']['random'], data['start_index']['testing_type']['random'], data['campaign_sub_type']['testing_type']['random'], data['campaign_type']['testing_type']['random'], data['api_key']['testing_type']['random'], data['project_id']['testing_type']['random']):
    out_json.append({'size': v1,'start_index': v2,'campaign_sub_type': v3,'campaign_type': v4,'api_key': v5, 'project_key': v6})
    return out_json


def runRegressionFunc():
randomList = makeCombination()
tempOutList = list()
for comb in randomList:
    tempDoc = dict()
    for funcName in comb:
        (key, val) = callOtherClasses(funcName)
        tempDoc[key] = val
    tempOutList.append(tempDoc)

return tempOutList
我想从makeCombination()中所有字段的“random”中获取所有可能的组合,并将其返回到runRegressionFunc()


另外,我还不熟悉编码世界:)

首先,您的json不正确。修复语法后,您可以使用
itertools.product
获取
api\u key
project\u key
内容的所有组合,并使用所需信息创建一个新的dict列表

>>> from itertools import product
>>> import pprint
>>>
>>> json_data = {"PostData" : {
... "api_key": {
...   "data_type": "String",
...   "testing_type": {
...     "random": [
...       "veryShortString",
...       "shortString",
...       "longString"
...       ]}},
... 
...  "project_key": {
...   "data_type": "String",
...   "testing_type": {
...     "random": [
...       "veryShortString",
...       "shortString",
...       "longString"
...       ]}}}}
>>>
>>> data = json_data['PostData']
>>> out_json = []
>>> for v1, v2 in product(data['api_key']['testing_type']['random'], data['project_key']['testing_type']['random']):
...      out_json.append({'api_key' : v1, 'project_key' : v2 })
... 
>>>
>>> pprint.pprint(out_json)
[{'api_key': 'veryShortString', 'project_key': 'veryShortString'},
 {'api_key': 'veryShortString', 'project_key': 'shortString'},
 {'api_key': 'veryShortString', 'project_key': 'longString'},
 {'api_key': 'shortString', 'project_key': 'veryShortString'},
 {'api_key': 'shortString', 'project_key': 'shortString'},
 {'api_key': 'shortString', 'project_key': 'longString'},
 {'api_key': 'longString', 'project_key': 'veryShortString'},
 {'api_key': 'longString', 'project_key': 'shortString'},
 {'api_key': 'longString', 'project_key': 'longString'}]

你能给出你的代码的例子吗你是如何解析这些数据的?你的json有语法错误。更新了我的查询,希望现在我能够突出显示我的查询这不是他/她想要的。您需要做的不是简单的
zip
,而是考虑所有组合感谢您的响应,尝试了您的方式但无法获得预期的结果。我已经更新了我的查询,请查看您是否能提供帮助。@RishabhSingh您只需抓取其他项目并将它们全部传递给itertools.product。请试一试。@Coldspeed谢谢,我能够用列表中的itertools.product获得所有组合,只需稍作修改。@RishabhSingh很高兴听到这个消息。干杯