如何使用for循环将浮点数分配给json转储的某些字段

时间:2014-05-09 15:56:07

标签: python json

我想创建一个json转储,其中包含某些数据(此处为值)我应该从for循环中获取:

Dumps = {
         "field1": value1,
         "field2": value2,
         "field3":{.
                   .
                   "field33":[{
                               "param331": value, "param332": value,
                               "param331": value, "param332": value,
                               "param331": value, "param332": value 
                                }]
                   }
         }

我将param331和param332的值存储在一个数组中 但是没有弄清楚如何从数组myTab中提取它们,将它们分配给它们的字段并保持所需的格式。 我试过了

 ..."field33":[{
                for i in range (0, len(myTab)):
                      "param331": myTab[i]-5.0,"param332":myTab[i]+5.0,      
                }]

但这是不可接受的,我也尝试在转储之外创建field33但是哪个结构或类型?如果同一个分配是我得到的转储:无法连接' str' (" param331")和'浮动' (myTab的值)对象。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

Python字典和JSON对象都不支持重复键。您可以选择创建单独的词典或将所有值一起列在列表中。

在列表中创建单独的词典可以使用列表解析来完成:

[{"param331": tab - 5.0, "param332": tab + 5.0} for tab in myTab]

生成字典列表:

[{"param331": value, "param332": value},
 {"param331": value, "param332": value},
 {"param331": value, "param332": value}]

myTab列表中的每个条目一个。

如果您只想要两个键的一个字典,请将列表生成为这些键的值:

[{"param331": [tab - 5.0 for tab in myTab], 
  "param332": [tab + 5.0 for tab in myTab]}]

这使用两个列表推导,并产生:

[{"param331": [value, value, value], "param332": [value, value, value]}]