当前位置: 首页 > 知识库问答 >
问题:

在Python中解码JSON遇到困难

严项明
2023-03-14

我是Python的初学者,我正试图学习如何使用数据结构,如JSON对象,但我在试图从JSON对象中实际获取数据时遇到了困难。

{“data”:{“internalname”:“value”,“int”:1}}

我可以通过已经有的代码打印文件中的数据,但是我只想打印某个值,比如internalname的值。我如何使用我已经有的代码打印这个?

import json
json_data=open('data.txt')
data = json.load(json_data)
print json.dumps(data)
json_data.close()

共有1个答案

平航
2023-03-14

您可以像对待字典一样对待结果数据结构。在本例中,结构中有一个名为data,该键的是另一个字典,它有两个键:internalnameint。为了访问这些值,可以使用以下示例中的语法:

In [1]: import json

In [2]: s = '{"data":{"internalName":"value","int":1}}'

In [3]: data = json.loads(s)

In [4]: print data
{u'data': {u'int': 1, u'internalName': u'value'}}

In [5]: data['data']['internalName']
Out[5]: u'value'

因此,在您的示例中,在定义数据之后,可以以类似的方式访问它。另外,我建议使用打开文件,因为它将为您处理关闭(当您离开缩进块时):

import json

# 'with' is called a context manager, and it handles closing for you when
# you leave the indented block
with open('data.txt', 'r') as f:
    data = json.load(f)

# When the code leaves the indented block, the file is closed for you

# Print the entire structure
print json.dumps(data)

# Print out a piece of the data
print data['data']['internalName']
 类似资料:
  • 问题内容: 这是一个例子: (等等。) 这是另一个: 取自于构建在节点上的简单记事本 这些是困扰我的问题: 到底是做什么的?如果不存在会发生什么? 为什么第二部分作为参数而第一部分不是参数? 编辑: 问题答案: Express使用具有回调的中间件函数(动作完成时调用的函数),而next具有此目的(这是触发Express堆栈中下一个中间件的回调)。所有Express中间件(与Connect兼容)具有

  • 我写了下面的代码,它确实反序列化和解析了一个JSON变量,但是,它不能与多个JSON变量一起工作 API检索的JSON具有如下类似的变量,但是,第一个分支有一个总是变化的数字,比如value_abc_########,其中######是一个总是不同的数字,所以我不知道这个分支得到了什么输出。 这是API调用返回的JSON结构: 虽然这是我编写的代码,但如果JSON只有1个分支结果,它可以正常工作,

  • 我正试着按照这里的入门说明: http://fabric8.io/guide/getstarted/gofabric8.html

  • 如有任何帮助将不胜感激 编写一个名为Bike的类,它有三个私有属性:model、type、year--为这些属性提供getter和setter。不允许在属性中存储无效数据-年份应为正数,型号应仅包含字母、数字和空格,类型应为以下类型之一:山地、斐济、越野。提供私有方法来验证模型并在更改模型时使用它,还提供方法从模型中删除任何无效字符,以便将新字符串保存到模型属性中。 私有boolean isVal

  • 问题内容: 我用来解码以下json字符串。 这是一个用Python编写的演示: 解码器将抛出: 如何应对呢?预期的输出是: 问题答案: “ \ s”不是有效的JSON转义字符串。 根据json.org,仅以下转义有效 \“ \\ / \ b \F \ n \ r \ t \ u 四十六进制数字