Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
查找json键以打印它';python中不带括号的内容_Python_Json - Fatal编程技术网

查找json键以打印它';python中不带括号的内容

查找json键以打印它';python中不带括号的内容,python,json,Python,Json,我对python/编程相对来说比较陌生,更像是json中的noob 我正在为我拥有的一个附带项目制作一个字典应用程序,它运行良好,我可以搜索单词并获得它们的定义,但我希望它变得完美,我希望最终用户能够阅读结果(我知道缩进,但我不希望括号和所有json格式出现在结果中) 这就是我从中提取数据的json: { "Bonjour": { "English Word": "Hello", "Type of word": "whatever", "Defintion": "Means goo

我对python/编程相对来说比较陌生,更像是json中的noob

我正在为我拥有的一个附带项目制作一个字典应用程序,它运行良好,我可以搜索单词并获得它们的定义,但我希望它变得完美,我希望最终用户能够阅读结果(我知道缩进,但我不希望括号和所有json格式出现在结果中)

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

{
 "Bonjour": {
  "English Word": "Hello",
  "Type of word": "whatever",
  "Defintion": "Means good day",
  "Use case example": "Bonjour igo",
  "Additional information": "BRO"
 }
}
这是我用来获取值的代码(它不起作用),在这种情况下,“search”变量是=到“Bonjour”(这是用户输入)

我得到的错误如下:

KeyError: ('English Word', 'Definition', 'Use case example')
现在我不确定“你好”是关键还是“英语单词”,等等。。。如果没有钥匙,什么是“你好”

无论如何,我希望它打印“英语单词”的值,最好是“英语单词-值/定义”


感谢您对问题的帮助,您似乎只想从现有词典中提取一些键值对

尝试以下方法:

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
这一行:

currentword[search]['English Word', 'Definition', 'Use case example']
调用
“英语单词”、“定义”、“用例示例”
,作为内部dict中的元组键,该dict在词典中不存在,这就是引发
键错误的原因

如果您只需要英文单词,请使用以下单词:

currentword[search]["English Word"]
假设
search
“你好”

看起来您还试图从内部dict中分别筛选出特定的键。如果是这种情况,您可以执行以下操作:

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

inner_dict = d['Bonjour']

keys = ["English Word", "Use case example", "Defintion"]

print({k: inner_dict[k] for k in keys})
# {'English Word': 'Hello', 'Use case example': 'Bonjour igo', 'Defintion': 'Means good day'}

JSON
格式是一种很好的键和值配对方式。
是我们为
指定的名称,因此很容易访问它们。
如果我们获取您的JSON,并将其按键和值拆分,我们将得到以下结果:
关键词:
“你好”、“英语单词”、“单词类型”、“定义”、“用例示例”、“其他信息”

显示所有值有点复杂,因此我将解释:
“你好”的价值是:

所有其他值都在“你好”的值中描述。
“英语单词”的值是“你好”等等

当您编写这样一行时:
currentword[search]['English Word','Definition','Use case example']
,您告诉Python查找名为
('English Word','Definition','Use case example')
,显然它不存在

你应该做的是:

currentword[搜索]中的定义的
:
英语单词=定义[英语单词]
打印('English Word-{}'。格式(eng_Word))

请注意,
definition
也包含所有其他字段,因此您可以选择您喜欢的任何一个。

感谢您为我指明了方法,但您能解释一下为什么会这样吗?例如,为什么我不能直接使用search而不是使用“search\u word”变量Thanks如果您需要使用search\u word,它将为您提供仅与“Bonjour”相关的词典。当前的_单词包含完整的字典,我想它会有很多像Bonjour这样的单词,而且我不想用括号,而是把每个定义放在一个单独的字典上line@Flexy如果答案对你有帮助,请考虑一下投票。谢谢我希望我能,但我还没有15个声誉:(谢谢你的帮助,我希望我能给你投票,但我太新了,我还没有验证它,因为另一个人发布的代码有效,但仍然,谢谢
d = {
 "Bonjour": {
  "English Word": "Hello",
  "Type of word": "whatever",
  "Defintion": "Means good day",
  "Use case example": "Bonjour igo",
  "Additional information": "BRO"
 }
}

inner_dict = d['Bonjour']

keys = ["English Word", "Use case example", "Defintion"]

print({k: inner_dict[k] for k in keys})
# {'English Word': 'Hello', 'Use case example': 'Bonjour igo', 'Defintion': 'Means good day'}
{
  "English Word": "Hello",
  "Type of word": "whatever",
  "Defintion": "Means good day",
  "Use case example": "Bonjour igo",
  "Additional information": "BRO"
}