用于将具有多个值的字典循环转换为JSON

时间:2018-02-22 09:45:08

标签: python json loops dictionary

我有一本包含以下内容的词典:

d = ('CF', [{'lat': -3.234, 'long': '54.234', 'date': '05-12-1996'}, {'lat': -2.234, 'long': '57.544', 'date': '02-12-1996'}], 'DF': {'lat': -3.234, 'long': '54.234', 'date': '03-12-1996'}])

有时dict中的键包含一个值

d = ('k', [v])

键也可以包含两个或更多值

d = ('k', [{v1}, {v2}])

我正在尝试将此字典转换为JSON格式,并且遇到了很多问题。我目前有这个,我知道是不够的:

for i in geodata.items():
    with open('geoJSON.json', 'w') as fp:
        json.dump(i, fp) 

这不适用于字典中的所有键值。我想知道如何将这个字典转换为JSON,同时将JEM文件命名为(CF,DF),并在字典值中取得日期(' date& #39;:' 05-12-1996')。要获得符合' CF-05-12-1996.json'行的JSON文件的名称。

因此,

CF-05-12-1996.json将包含:

{
'lat': -3.234,
'long': '54.234',
'date': '05-12-1996'
}

CF-02-12-1996.json将包含:

{
'lat': -2.234,
'long': '57.544',
'date': '02-12-1996'
}

最后,DF-03-12-1996.json将包含:

{
'lat': -3.234,
'long': '54.234',
'date': '03-12-1996'
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

假设geodata.items()返回一个列表,如果list包含" dict"则json.dump()将起作用。数据类型。 您可以使用以下方式查看:

type(geodata.items()[0]) 

如果列表具有非dict数据类型,则需要检查函数。