在python中迭代多维json
很抱歉发布了错误的格式,希望现在我的问题是明确的。 我正在解析一个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
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很高兴听到这个消息。干杯