【问题标题】:Update values in a JSON file with data from a list使用列表中的数据更新 JSON 文件中的值
【发布时间】:2021-04-15 07:24:37
【问题描述】:

我有一个如下所示的 JSON 文件:

{
  "apples": 98,
  "pears": 39,
  "grapes": 92,
  "watermelons": 16,
  "oranges": 46,
  "bananas": 32
}

我想更新每个键的值。我目前是这样做的:

datafile = open("fruitdata.json", "r")
fruitsdata = json.load(datafile)
datafile.close()

fruitsdata["apples"] = 23
fruitsdata["pears"] = 47
fruitsdata["grapes"] = 72
fruitsdata["watermelons"] = 74
fruitsdata["oranges"] = 18
fruitsdata["bananas"] = 84

datafile = open("fruitdata.json", "w")
json.dump(fruitsdata, datafile, indent=2)
datafile.close()

如果不手动输入要更新的每一行,我该怎么做?

我想也许可以使用for 循环以及包含所有新值的列表。

newFruitValues = [23,47,72,74,18,84]

循环检查fruitsdata 中每个键的值,然后使用列表中的值更新它们。但我不知道该怎么做。

【问题讨论】:

    标签: python json list loops


    【解决方案1】:

    zip(lst_1, lst_2) 接受两个列表并将相应索引上的值作为 zip 对象内的元组的并行返回。

    for fruit, newFruitVal in zip(fruitsdata.keys(), newFruitValues):
        fruitsdata[fruit] = newFruitVal
    

    【讨论】:

      【解决方案2】:

      另一个解决方法,基于枚举函数:

      for i, key in enumerate(list(fruitsdata.keys())):
          fruitsdata[key] = newFruitValues[i]
      

      虽然字符比另一个(好)答案少,但也是两行!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-11
        相关资源
        最近更新 更多