簡體   English   中英

Python Tuple to Dict,帶有額外的鍵列表

[英]Python Tuple to Dict, with additional list of keys

所以我有這個元組數組:

[(u'030944', u'20091123', 10, 30, 0), (u'030944', u'20100226', 10, 15, 0)]

我有這個字段名稱列表:

['id', 'date', 'hour', 'minute', 'interval']

我想,如果可能的話,一舉將元組列表轉換為dict:

[{
    'id': u'030944',
    'date': u'20091123',
    'hour': 10,
    'min': 30,
    'interval': 0,
},{
    'id': u'030944',
    'date': u'20100226',
    'hour': 10,
    'min': 15,
    'interval': 0,
}]
data = [(u'030944', u'20091123', 10, 30, 0), (u'030944', u'20100226', 10, 15, 0)]
fields = ['id', 'date', 'hour', 'minute', 'interval']
dicts = [dict(zip(fields, d)) for d in data]

為了解釋, zip接受一個或多個序列,並返回一個元組序列,每個輸入序列的第一個元素,第二個元素等dict構造函數接受一系列鍵/值元組並構造一個字典對象。 因此,在這種情況下,我們遍歷數據列表,使用固定的鍵列表來壓縮每個元組值,並從結果的鍵/值對列表中創建字典。

import json

ts = [(u'030944', u'20091123', 10, 30, 0), (u'030944', u'20100226', 10, 15, 0)]
fs = ['id', 'date', 'hour', 'minute', 'interval']
us = []

for t in ts:
    us.append(dict(zip(fs, t)))

print(json.dumps(us))

結果:

[
    {
        "date": "20091123",
        "interval": 0,
        "minute": 30,
        "id": "030944",
        "hour": 10
    },
    {
        "date": "20100226",
        "interval": 0,
        "minute": 15,
        "id": "030944",
        "hour": 10
    }
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM