在字典列表中创建字典

时间:2019-10-08 18:20:50

标签: python dictionary

我正在尝试在字典列表中创建一个字典。我该如何建立数据结构并稍后通过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)

2 个答案:

答案 0 :(得分:1)

注意!不要在代码中将“路径”名称用于变量或其他任何东西,例如python的builin模块名称

使用以下代码。 make_var函数带有2个变量,第一个变量是站点的名称,第二个变量是目录的路径,其中包含您需要为其注册的所有文件。代码仅适用于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

答案 1 :(得分:0)

不确定“站点”是什么意思...

以下代码将站点用作文件系统上的位置。 遍历站点列表并读取每个站点的文件。

<div id="slider">
            <div class="slide">
                <h1></h1>
                <p></p>
            </div>
            <div id="sliderBtns">
                <div class="sliderBtn active"></div>
                <div class="sliderBtn"></div>
                <div class="sliderBtn"></div>
            </div>
        </div>