【问题标题】:Having trouble with decoding JSON in Python在 Python 中解码 JSON 时遇到问题
【发布时间】:2012-12-20 17:47:00
【问题描述】:

我是 Python 的初学者,我正在尝试学习如何使用 JSON 对象等数据结构,但我在尝试从 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()

【问题讨论】:

    标签: python json


    【解决方案1】:

    您可以将生成的数据结构视为dictionary。在这种情况下,结构内部有一个名为datakey,该键的value 是另一个字典,它有两个键: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'
    

    因此,在您的情况下,定义data 后,您可以以类似的方式访问它。另外,我建议使用with 打开文件,因为它会为您处理关闭(当您离开缩进块时):

    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']
    

    【讨论】:

    • 感谢您很好地回答了我的问题。
    猜你喜欢
    • 2018-12-25
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多