一个基于CSV文件创建词汇表的包。
项目描述
此包提供了一个使用CSV文件实现的简单词汇表实现。CSV文件的优势在于它们提供了一个外部点来指定数据,这允许非开发人员自行调整数据。
详细文档
CSV词汇表
此包提供了一个使用CSV文件实现的简单词汇表实现。CSV文件的优势在于它们提供了一个外部点来指定数据,这允许非开发人员自行调整数据。
>>> import z3c.csvvocabulary>>> import os.path >>> path = os.path.dirname(z3c.csvvocabulary.__file__)
CSV词汇表
CSV词汇表实现实际上只是一个创建具有标题术语的简单词汇表的函数。在测试子包的"data"目录中有一个sample.csv
文件,所以让我们从这个文件创建一个词汇表。
>>> csvfile = os.path.join(path, 'testing', 'data', 'sample.csv')>>> samples = z3c.csvvocabulary.CSVVocabulary(csvfile) >>> samples <zope.schema.vocabulary.SimpleVocabulary object at ...>>>> sorted([term.value for term in samples]) ['value1', 'value2', 'value3', 'value4', 'value5']
现在让我们看看一个术语
>>> term1 = samples.getTerm('value1') >>> term1 <zope.schema.vocabulary.SimpleTerm object at ...>
如你所见,词汇表自动添加了值的前缀
>>> term1.value 'value1'>>> term1.token 'value1'>>> term1.title 'sample-value1'
虽然看起来标题是错误的Unicode字符串,但实际上它是一个I18n消息
>>> type(term1.title) <class 'zope.i18nmessageid.message.Message'>>>> term1.title.default 'Title 1'>>> term1.title.domain 'zope'
当然,将"zope"作为消息域通常是不合适的。您可以在初始化词汇表时指定消息工厂
>>> from zope.i18nmessageid import MessageFactory >>> exampleDomain = MessageFactory('example')>>> samples = z3c.csvvocabulary.CSVVocabulary(csvfile, exampleDomain) >>> term1 = samples.getTerm('value1') >>> term1.title.domain 'example'
词汇表设计用于与小型数据集一起工作,通常是用户界面中的选择。所有术语都在初始化时创建,因此词汇表不会检测CSV文件的更新或在需要时加载数据。但正如我所说,这是完全可以接受的。
编码
默认情况下,词汇表期望csv文件采用latin1编码。
>>> csvfile = os.path.join(path, 'testing', 'data', 'utf-8.csv') >>> wrongEncoding = z3c.csvvocabulary.CSVVocabulary(csvfile) >>> wrongEncoding.getTerm('ae').title.default '\xc3\xa4'
如果您的csv文件具有不同的编码,您可以明确指定它
>>> utf8Encoded = z3c.csvvocabulary.CSVVocabulary(csvfile, encoding='utf-8') >>> term = utf8Encoded.getTerm('ae') >>> term.title.default '\xe4'
CSV消息字符串提取
在
>>> basedir = os.path.dirname(path)>>> catalog = z3c.csvvocabulary.csvStrings(path, basedir) >>> pprint(catalog) {'sample-value1': [('...sample.csv', 1)], 'sample-value2': [('...sample.csv', 2)], 'sample-value3': [('...sample.csv', 3)], 'sample-value4': [('...sample.csv', 4)], 'sample-value5': [('...sample.csv', 5)], 'utf-8-ae': [('...utf-8.csv', 1)], 'utf-8-oe': [('...utf-8.csv', 2)]}
变更历史
3.0 (2023-02-07)
添加对Python 3.7、3.8、3.9、3.10、3.11的支持。
停止支持Python 2.6、2.7、3.3。
2.0.0 (2013-02-19)
添加Python 3.3支持。
停止支持Python 2.4和2.5。
1.1.0 (2010/01/11)
现在可以指定csv文件的编码CSVVocabulary(csvfile, encoding='utf-8') [fRiSi]
1.0.0
初始发布
项目详情
关闭
z3c.csvvocabulary-3.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 16d6d85031cdd42f19ccaafca6e6230b28118561044ba362551fbd7e672f0201 |
|
MD5 | e097b36afb4c46d3fc1af09dee70d9e3 |
|
BLAKE2b-256 | 3c99162391b9edae58e1d14b4a27a2d0a5834c44197fcc73431c5704eabaed5c |
关闭
z3c.csvvocabulary-3.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 583a1e63590ed1e4e7faee7a3fe8a37a23768c4b74ba373a1bcf792a6d4b8b4b |
|
MD5 | 58f615c102291f09241f8c42e90cb6a0 |
|
BLAKE2b-256 | 2d10005537445058def4a4a69374dc5ce758eade74d7d76dd738c8626652dd3a |