问题描述
试题编号: | 201709-3 |
试题名称: | JSON查询 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,可以用来描述半结构化的数据。JSON 格式中的基本单元是值 (value),出于简化的目的本题只涉及 2 种类型的值: 输入格式 第一行是两个正整数 n 和 m,分别表示 JSON 数据的行数和查询的个数。 输出格式 对于输入的每一个查询,按顺序输出查询结果,每个结果占一行。 样例输入 10 5 样例输出 STRING John 评测用例规模与约定 n ≤ 100,每行不超过 80 个字符。 |
代码
#json
import json#python 有内置json库
n,m = map(int,input().split())
#json解析
json_str = ""
for i in range(n):
json_str += input()
data = json.loads(json_str)#json字符串加载为字典
querys = []
for i in range(m):
querys.append(input().split("."))#根据.划分层次
json_type={
str:"STRING",
dict:"OBJECT"
}
for q in querys:
try:#检查字典项的类型,将每个层次带入查询转为字符串 data["a"]["b"]并eval()执行
if(type(eval("data"+"".join(["["+repr(x)+"]" for x in q]))) == str):
print("STRING",eval("data"+"".join(["["+repr(x)+"]" for x in q])))
elif(type(eval("data"+"".join(["["+repr(x)+"]" for x in q]))) == dict):
print("OBJECT")
except Exception:#出现异常表示不存在
print("NOTEXIST")