python - 如何从 JPATH 构造 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] +'"' + ':' + '"' + 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)
推荐阅读
- python - 如何将值作为整数从 Python 传递到 VBA 宏中而不会出错?
- spring-boot - 接收大数据时骆驼路线中断
- amazon-web-services - 从 ECS Docker 容器写入 cloudwatch 时缺少日志行
- php - PHP:为什么“${obj->prop}”是解析错误,而“$obj->prop”是合法的?
- android - 为什么这个布局需要 2-7 秒才能在 UI 中呈现?
- html - Div vs Div span 在用户界面角度显示文本
- node.js - 与多 pk 模型创建关联时出现问题
- php - 从 xml 文件中获取特定字段
- python-3.x - 在 python 3 parsegps(str) 中需要一个类似字节的对象而不是字符串
- reactjs - Apexcharts 工具提示样式未应用