我有一个json文件。我想使用python检索两个字符串之间的值。
{
"101": {
"set": [
"1012",
"some text a."
],
"tag": "tagtext"
},
"1027": {
"slide": [
"1013757",
"x"
]
},
"1014220": {
"set": [
"1018420",
"some text."
],
"ans": "4th"
},
"1019660": {
"set": [
"1031920",
"Some text b"
],
"tag": "tagtext"
},
"1034280": {
"set": [
"1040560",
"some text"
],
"interact": "intertext"
},
我想在设置和标记之间提取数据:
输出应为: “有些文字。” “一些文字b。”
答案 0 :(得分:1)
将输入解析为JSON并检查tag
是否存在。
import json
with open("j.json") as f:
j = json.load(f)
for k, v in j.items():
try:
s = v["set"]
t = v["tag"]
print(s[1])
except:
# no tag
pass
输出:
some text a.
Some text b
答案 1 :(得分:0)
您必须解析json
并将其转换为dict
。在dict
中,您可以检查密钥。如果两个键都存在,那么您可以打印数据。
如果你愿意,我可以为此提供代码。但更好的是你尝试自己,否则我会帮助你。
答案 2 :(得分:0)
一些改进:
如果您只想使用异常捕获 KeyError 而不是所有异常,我个人更喜欢使用 if ,因为它更清晰但这是一个风格问题
import json
with open("j.json") as f:
j = json.load(f)
def search(j):
ret = []
for k, v in j.items():
if v.get('set') and v.get('tag'):
ret.append(v['set'][-1])
return ret
search(j)
[你的文字a。',你的文字b']