首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Dict列表中创建dict

在Dict列表中创建dict
EN

Stack Overflow用户
提问于 2019-10-08 18:20:50
回答 2查看 102关注 0票数 0

我试着在一个字典列表中创建一个dict。如何构建数据结构,并在以后通过jinja2获取数据?下面是一个示例:

代码语言:javascript
复制
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] }

代码语言:javascript
复制
exampledata = {}
for f in os.listdir(path):
   exampledata.setdefault(f.split('.')[1],[]).append(f)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-08 18:52:26

注意!不要在代码中使用“path”名作为变量或任何内容,因为python的builin模块的名称就是

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

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2019-10-08 18:47:17

不知道你说的“网站”是什么意思.

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

代码语言:javascript
复制
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})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58291996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档