首页 > 解决方案 > 寻找 json 键以在 python 中打印不带括号的内容

问题描述

我对 python/编程相对较新,甚至更多的是 json 中的菜鸟。

我正在为我的一个副项目制作一个字典应用程序,它工作正常,我可以搜索单词并获得它们的定义,但我想让它变得完美,我希望最终用户可以阅读结果(我知道关于缩进,但我不希望括号和所有 json 格式出现在结果中)

所以这是我从中提取数据的json:

{
 "Bonjour": {
  "English Word": "Hello",
  "Type of word": "whatever",
  "Defintion": "Means good day",
  "Use case example": "Bonjour igo",
  "Additional information": "BRO"
 }
}

这是我用来获取值的代码(它不起作用),在这种情况下,“搜索”变量是 = 到“Bonjour”(这是用户输入)

currentword = json.load(data) #part of the "with open..."


for definition in currentword[search]['English Word', 'Definition', 'Use case example']:
    print(definition)

我得到的错误如下:

KeyError: ('English Word', 'Definition', 'Use case example')

现在我不确定“Bonjour”是键还是“英文单词”等...是键,如果不是,什么是“Bonjour”

无论如何,我希望它打印“English Word”的值,最好是“English Word - VALUE/DEFINITION”

谢谢你的帮助

标签: pythonjson

解决方案


从您的问题来看,您似乎只想从现有字典中提取一些键值对。

尝试如下:

data = {
 "Bonjour": {
  "English Word": "Hello",
  "Type of word": "whatever",
  "Definition": "Means good day",
  "Use case example": "Bonjour igo",
  "Additional information": "BRO"
  }
  }

currentword = data
search = "Bonjour"

result = dict((k, currentword[search][k]) for k in ['English Word', 'Definition', 'Use case example'])

for k,v in result.items():
    print k + ":" + v

结果:

Definition:Means good day 
English Word:Hello 
Use case example:Bonjour igo

推荐阅读