我有一个变量,它包含4行YAML键/值,在标记文件中用作frontmatter
我需要将其放入字典中,但当我这样做时,我希望date:
值成为datetime对象,而tags:
值成为列表
我不知道该怎么做。我可以将键/值放入字典,但我不确定如何在创建字典之前或期间将“date:
和tags:
转换为正确的类型
这就是我目前在没有正确类型的情况下进行操作的方式:
>>> import re
>>> frontmatter = """
... id: 20201222163206
... title: Lorem Ipsum Dolor Sit Amet
... date: 2020-12-22 16:32:06
... tags: [lorem, ipsum, dolor, sit, amet]
... """
>>> frontmatter_dict = dict(re.findall(r"(.*): (.*)", frontmatter))
>>> print(frontmatter_dict)
{'id': '20201222163206', 'title': 'Lorem Ipsum Dolor Sit Amet', 'date': '2020-12-22 16:32:06', 'tags': '[lorem, ipsum, dolor, sit, amet]'}
这就是我希望字典的结构类似(和正确的类型,如上所述):
{'id': 20201222163206, 'title': 'Lorem Ipsum Dolor Sit Amet', 'date': datetime.datetime(2020, 12, 22, 16, 32, 6), 'tags': ['lorem', 'ipsum', 'dolor', 'sit', 'amet']}
在上面的例子中,我可以使用PyYAML模块来实现它,但重要的是我只使用内置Python模块来实现这个,因此在这种情况下使用PyYAML不是一个解决方案
我已经浏览了PyYAML的source code,看看我是否能够找到如何实现它的方法,但是遗憾的是,我的Python技能还不足以解决这个问题
如前所述,这是我使用PyYAML实现它的方式,但我只需要使用内置模块
>>> import yaml
>>> frontmatter = """
... id: 20201222163206
... title: Lorem Ipsum Dolor Sit Amet
... date: 2020-12-22 16:32:06
... tags: [lorem, ipsum, dolor, sit, amet]
... """
>>> frontmatter_dict = yaml.load(frontmatter, Loader=yaml.FullLoader)
>>> print(frontmatter_dict)
{'id': 20201222163206, 'title': 'Lorem Ipsum Dolor Sit Amet', 'date': datetime.datetime(2020, 12, 22, 16, 32, 6), 'tags': ['lorem', 'ipsum', 'dolor', 'sit', 'amet']}
构建词典之后
为了标签
相关问题 更多 >
编程相关推荐