在di列表中创建Dict

2024-06-01 04:16:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在一个dict列表中创建一个dict。如何构建数据结构,然后通过jinja2获取数据? 举个例子:

var = {
    'site': '', 
    'listofiles': [
        {'time': '', 'name': ''}
    ]
}

exampledata = {
    'site': 'DC1', 
    'listofiles': [
        {'time': 'Thu Oct 3 22:26:40 2019', 'name': 'file1'}, 
        {'time': 'Thu Oct 3 20:26:40 2019', 'name': 'file2'}, 
        {'time': 'Thu Oct 3 21:26:40 2019', 'name': 'file3'}
    ]
} 

如何在var中填充数据? 我试过做以下工作,但只会给我带来
{ 'DC1': [file1,file2,file3], 'DC2': [file1,file2] }

exampledata = {}
for f in os.listdir(path):
   exampledata.setdefault(f.split('.')[1],[]).append(f)

Tags: name数据结构列表timevarsitefile1dict
2条回答

不知道你说的“站点”是什么意思。。。你知道吗

下面的代码使用站点作为文件系统上的位置。 它遍历站点列表并读取每个站点的文件。你知道吗

import os
import datetime

data = dict()

sites = ['.']
for site in sites:
    data['listofiles'] = []
    data['site'] = site
    for f in os.listdir(site):
        data['listofiles'].append(
            {'time': str(datetime.datetime.fromtimestamp(os.path.getmtime(os.path.join(site, f)))), 'name': f})

注意!不要在代码中使用“path”名称作为变量或任何东西,就像python的builin模块的名称一样

使用以下代码。makevar函数有两个变量,第一个变量是站点的名称,第二个变量是目录的路径,其中包含所有需要注册的文件。代码仅适用于Python3

from datetime import datetime as dt
from pathlib import Path


def make_var(site_name, pth): 
    exampledata = {'site':site_name, 'listofiles':[]}
    p = Path(pth)
    for f in p.iterdir():
        if f.is_file():
            name = f.name.replace(f.suffix, '')
            tm = dt.utcnow().strftime('%a %b %H:%M:%S %Y')
            exampledata['listofiles'].append({'time':tm, 'name':name}) 
    return exampledata

相关问题 更多 >