我在python中有一个命名的tuple类
class Town(collections.namedtuple('Town', [
'name',
'population',
'coordinates',
'population',
'capital',
'state_bird'])):
# ...
我想将Town实例转换成字典。我不希望它与城镇中字段的名称或数量严格相关。
有没有一种方法可以编写它,以便我可以添加更多字段,或者传入完全不同的命名元组并获得字典。
我无法更改其他人代码中的原始类定义。因此,我需要以一个Town实例为例,并将其转换为字典。
TL; DR:_asdict
为此提供了一种方法。
这是用法的演示:
>>> fields = ['name', 'population', 'coordinates', 'capital', 'state_bird']
>>> Town = collections.namedtuple('Town', fields)
>>> funkytown = Town('funky', 300, 'somewhere', 'lipps', 'chicken')
>>> funkytown._asdict()
OrderedDict([('name', 'funky'),
('population', 300),
('coordinates', 'somewhere'),
('capital', 'lipps'),
('state_bird', 'chicken')])
这是一个已记录的namedtuples方法,即,与python中的常规约定不同
,该方法名上的前划线并不妨碍使用
。随着加入namedtuples其他方法,_make
,_replace
,_source
,_fields
,它有下划线只尝试和防止可能的字段名的冲突。
注意: 对于一些2.7.5 <python版本<3.5.0的代码,您可能会看到以下版本:
>>> vars(funkytown)
OrderedDict([('name', 'funky'),
('population', 300),
('coordinates', 'somewhere'),
('capital', 'lipps'),
('state_bird', 'chicken')])
有一段时间,文档提到_asdict
过时了(请参阅此处),并建议使用内置方法vars。那个建议现在已经过时了。为了修复与子类化相关的错误__dict__
,此commit再次删除了namedtuples上存在的属性。
问题内容: 我一直在寻找有关此问题的答案,但似乎无法找到答案。也许到了傍晚才找出答案,所以我转向这里的优秀读者。 我从CouchDB记录中提取了以下JSON数据: 此数据存储在Python字典中,该字典位于称为“ ” 的字典中键“ ” 下。我想将此数据从CouchDB转换为Python dict,以便可以在Django模板中执行以下操作: 我发现了很多有关将字典转换为JSON的信息,但是没有其他方
本文向大家介绍sqlalchemy 将结果转换成字典,包括了sqlalchemy 将结果转换成字典的使用技巧和注意事项,需要的朋友参考一下 示例 在SQLAlchemy核心中,结果为RowProxy。如果您需要显式词典,可以致电dict(row)。 首先为示例进行设置: 然后从结果行创建字典:
问题内容: 我有一个这样的元组列表: 我想在第一项中遍历此键,因此,例如,我可以打印如下内容: 我该如何在不保持项目跟踪第一个项目是否与我在元组周围循环相同的情况下进行此操作?感觉很乱(而且我必须先对列表进行排序)… 问题答案: 产生:
问题内容: 我有一个Web API方法,可以将任意json有效内容接受到属性中。因此,我不知道会发生什么,但是我仍然需要将其转换为.NET类型。我想拥有一个以便可以按我想要的任何方式处理它。 我进行了很多搜索,但找不到任何东西,最终启动了一个麻烦的方法来进行此转换,一个键一个键,一个值一个值。有简单的方法吗? 输入-> 谢谢! 问题答案: 我最终使用了两个答案的混合,因为没有一个真正地钉住它。 T
问题内容: 我有一本字典,例如: 我想将其转换为namedtuple。我当前的方法是使用以下代码 产生 myNamedTuple(a = 1,b = 2,c = 3,d = 4) 这对我来说很好用(我认为),但是我是否缺少诸如…的内置组件? 更新:正如评论中所讨论的,我想将字典转换为namedtuple的原因是为了使其变得可散列,但仍像字典一样仍然可用。 问题答案: 要创建子类,您可以直接传递字典
问题内容: 假设你有: 产生以下字典的最简单方法是什么? 问题答案: 像这样: Voila 成对的·构造函数和·函数非常有用: