【问题标题】:Python for loop to read a JSON filePython for循环读取JSON文件
【发布时间】:2022-11-18 04:12:30
【问题描述】:

我正在尝试理解如下实现的 Python for 循环

samples= [(objectinstance.get('sample', record['token'])['timestamp'], record) 
            for record in objectinstance.scene]

“scene”是一个包含字典列表的 JSON 文件,每个字典条目通过令牌的值引用另一个名为“sample”的 JSON 文件,其中包含“timestamp”键和其他键。

尽管我可以在较高层次上大致理解,但我无法破译此处如何将“记录”用作对象的 get 方法的输出。我认为这是某种列表理解,但不确定。你能帮助理解这一点,并为我提供任何参考以更好地理解这一点吗?谢谢你

【问题讨论】:

  • scene 不是 JSON 文件,它只是一个字典列表。我假设它是通过从 JSON 文件调用 json.load() 创建的,但是一旦加载它,它就只是一个普通列表。
  • 什么是objectinstancescene 属性表明它是一个对象,但 objectinstance.get() 表明它是一个字典。

标签: python json for-loop list-comprehension


【解决方案1】:

以非理解形式如下

samples = []
for record in objectinstance.scene:
    data = (
              objectinstance.get('sample', record['token'])['timestamp'],
              record
           )
    samples.append(data)

objectinstance.get('sample', record['token'])这看起来像一个方法,它接受两个参数并返回一个 json/字典

{<key1>:<value1>, ... ,'timestmap':<somedata>, ...<keyn>:<valuen>}

并且您正在使用此调用的 timestamp 值保存记录

【讨论】:

  • 好像不是这个问题。他们明确表示,他们对如何在get() 调用中使用这些值感到困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 2011-10-09
  • 1970-01-01
  • 2018-07-16
  • 1970-01-01
  • 2016-02-22
相关资源
最近更新 更多