旧词典数据中的词典重建格式

时间:2018-11-05 18:46:58

标签: python-3.x

我在下面有一本字典

dict1 = {'index': 88260', 'host': 'digital.net', 'source': '11-02.txt', '_time': '2018 9:00 EDT', 'count': '1'}

这是重建新词典的一种方法吗?

{
 "name1": {
    "index": "88260",                
    "host": "digitalnet"
 },
 "time": '2018 9:00 EDT',
 "name2": {                    
    "source": '11-02.txt'
 },
 "metricName": "test 1",   
 "count_value": 1,
 "metricType": "count"              
} 

到目前为止,我只能得到name1部分,即

d1_items = list(dict1.items())

dic2={"name1":{k: v for k, v in d1_items[0:2]}}

下一步将是什么?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的数据,由于新字典包含的原始字典中不存在的键,因此除了为每个键值对手动构建新字典外,我不确定是否还有更好的方法。

如果我误解了一些东西,请发表评论,否则...

我唯一真正添加的是对df.groupby(lambda x: {'Y': 'X'}.get(x, x), axis=1).first() 0 X 0 1 6 1 2 7 2 3 1 3 4 5 列表进行排序,因为字典不是按设计排序的,因此确保我们获得正确的键值对的唯一方法是首先对数据进行排序:

d1_items

新字典dict1 = {'index': '88260', 'host': 'digital.net', 'source': '11-02.txt', '_time': '2018 9:00 EDT', 'count': '1'} new_keys = ['name1', 'time', 'name2', 'metricName', 'count_value', 'metricType'] d1_items = sorted(dict1.items()) d2 = {} d2[new_keys[0]] = {k:v for k, v in d1_items[2:4]} d2[new_keys[1]] = d1_items[0][1] d2[new_keys[2]] = {d1_items[4][0]: d1_items[4][1]} d2[new_keys[3]] = 'test 1' d2[new_keys[4]] = int(d1_items[1][1]) d2[new_keys[5]] = d1_items[1][0] 已创建,现在让我们看一下它:

d2

看起来很有希望,让我们检查一下它是否与我们期望的字典结果匹配。

>>> import pprint
>>> pprint.pprint(d2)

{'count_value': 1,
 'metricName': 'test 1',
 'metricType': 'count',
 'name1': {'host': 'digital.net', 'index': '88260'},
 'name2': {'source': '11-02.txt'},
 'time': '2018 9:00 EDT'}