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