Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 如何从JPATH构造JSON_Python_Json - Fatal编程技术网

Python 如何从JPATH构造JSON

Python 如何从JPATH构造JSON,python,json,Python,Json,我正在解析一个包含json路径列表的文本文件,我想从中构造json 我就是这样开始的 def construct_json(jpath): tokens = jpath.strip().split('.') json = '' for token in tokens: if len(token.split('=')) == 2: json = json + '"' + token.split('=')[0] +'"' + ':' +

我正在解析一个包含json路径列表的文本文件,我想从中构造json

我就是这样开始的

def construct_json(jpath):
    tokens = jpath.strip().split('.')
    json = ''
    for token in tokens:
        if len(token.split('=')) == 2:
            json = json + '"' + token.split('=')[0] +'"' + ':' + '"' + token.split('=')[1] + '"}}}}'
        else:
            json = json + '"'+token+'":{'
    return '{'+json

jpaths_text = 'quiz.sport.q1.question=Which one is correct team name in NBA?,quiz.sport.q1.question=Which one is correct team name in Soccer?'
jpaths = jpaths_text.split(',')

questions = []
for jpath in jpaths:
    questions.append(construct_json(jpath))

print questions
上述程序提供以下输出:

['{"quiz":{"sport":{"q1":{"question":"Which one is correct team name in NBA?"}}}}', '{"quiz":{"sport":{"q1":{"question":"Which one is correct team name in Soccer?"}}}}']
我想要的是列表中的所有
q1
。大致如下:

{
    "quiz": {
        "sport": {
            "q1": [{
                "question": "Which one is correct team name in NBA?"
            }, {
                "question": "Which one is correct team name in Soccer?"
            }]
        }
    }
}

如有任何帮助/线索,将不胜感激。谢谢

如果结构与该示例的结构相同,则可以使用如下内容:

ls = ['{"quiz":{"sport":{"q1":{"question":"Which one is correct team name in NBA?"}}}}',
      '{"quiz":{"sport":{"q1":{"question":"Which one is correct team name in Soccer?"}}}}']

d = {"quiz": {
    "sport": {
        "q1": []
    }

}}
for dic in ls:
    q1 = json.loads(dic).get('quiz').get('sport').get("q1")
    d.get('quiz').get('sport').get('q1').append(q1)

print(d)

如果结构与该示例相同,那么您可以使用如下内容:

ls = ['{"quiz":{"sport":{"q1":{"question":"Which one is correct team name in NBA?"}}}}',
      '{"quiz":{"sport":{"q1":{"question":"Which one is correct team name in Soccer?"}}}}']

d = {"quiz": {
    "sport": {
        "q1": []
    }

}}
for dic in ls:
    q1 = json.loads(dic).get('quiz').get('sport').get("q1")
    d.get('quiz').get('sport').get('q1').append(q1)

print(d)
导入json
def摘录问题(jpaths文本):
问题路径='quick.sport.q1.question='
问题={
“测验”:{
“运动”:{
“q1”:[],
},
},
}
对于jpaths_text.split(',')中的jpath:
如果jpath.find(问题路径)==0:
问题['quick']['sport']['q1'].附加(
jpath.replace(问题路径“”)
回答问题
jpaths_text='quick.sport.q1.question=哪一个是NBA中正确的球队名称?'quick.sport.q1.question=哪一个是足球中正确的球队名称?'
问题=摘录问题(jpaths\U文本)
问题\u json=json.dumps(问题)
打印(问题)
导入json
def摘录问题(jpaths文本):
问题路径='quick.sport.q1.question='
问题={
“测验”:{
“运动”:{
“q1”:[],
},
},
}
对于jpaths_text.split(',')中的jpath:
如果jpath.find(问题路径)==0:
问题['quick']['sport']['q1'].附加(
jpath.replace(问题路径“”)
回答问题
jpaths_text='quick.sport.q1.question=哪一个是NBA中正确的球队名称?'quick.sport.q1.question=哪一个是足球中正确的球队名称?'
问题=摘录问题(jpaths\U文本)
问题\u json=json.dumps(问题)
打印(问题)

路径
quick.sport.q1.问题对每个人都是一样的吗?是的,路径
quick.sport.q1.问题对每个人都是一样的吗?是的,路径总是一样的