将python对象拆分为两个对象

将python对象拆分为两个对象,python,Python,我有一个物体看起来像 object = [{'number':'230/600','blah':'hi'},{'number':'240/620','blah':'hey'}] 我想将其拆分为以下格式 [{'first':'230','second':'600', 'blah':'hi'},{'first':'240','second':'620','blah':'hey'}] 根据/?之前和之后的内容如何进行拆分的任何提示假定格式是固定的,您可以执行以下操作: >>>

我有一个物体看起来像

object = [{'number':'230/600','blah':'hi'},{'number':'240/620','blah':'hey'}]
我想将其拆分为以下格式

[{'first':'230','second':'600', 'blah':'hi'},{'first':'240','second':'620','blah':'hey'}] 

根据
/

之前和之后的内容如何进行拆分的任何提示假定格式是固定的,您可以执行以下操作:

>>> object = [{'number':'230/600'},{'number':'240/620'}]

>>> for value in object:
...     numbers = value['number'].split('/')
...     new_object.append({'numbera': numbers[0], 'numberb': numbers[1]})
...

>>> new_object
[{'numberb': '600', 'numbera': '230'}, {'numberb': '620', 'numbera': '240'}]
>>>
编辑:这是在编辑问题之前。迈克的回答对编辑后的问题非常有效。

这很有效:

res = []
for item in L:
    d = {}
    for key, value in item.items():
        split_value = value.split('/')
        if len(split_value) > 1:
            for entry, name in zip(split_value, ['first', 'second']):
                d[name] = entry
        else:
            d[key] = value
    res.append(d)
现在:


如果数据中有另一个元素不变,但应该在新元素中,该怎么办?请参见编辑。例如
object=[{'number':'230/600','blah':'hi'},{'number':'240/620','blah':'hey'}]
@nquestion你可以用[:]像
foo=object[:]一样克隆列表
object
编辑:这是在你编辑它之前给你的注释。@Eekan我也可以只做
新建对象.append({'numbera':numbers[0],'numberb':numbers[1],'blah':value['blah']}
获取
blah
元素?@nquestion是的,顺便说一下
新对象
没有在该代码中定义,因此您应该将其绑定到空列表
[]
abc
部分是关于什么的?@nquestion:For
numbera
numberb
numberc
。查看文档。
abc
是将添加到
number
以形成
numbera
等的字母。如果要拆分的元素超过三个,则需要更多的字母
string.ascii_小写
在这里可能很有用。最短者获胜。拆分字符串中只有两个条目。因此,只使用了
a
b
。但是考虑到我在上面的编辑,
[{'first':'230','second':'600','blah':'hi'},{'first':'240','second':'620','blah':'hey'},{/code>
>>> res
[{'blah': 'hi', 'first': '230', 'second': '600'},
 {'blah': 'hey', 'first': '240', 'second': '620'}]