如何将子列表转换为lis

2024-06-13 23:04:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面这样的名单

[
    'August 28, 2017',
    'gilbert arizona',
    '33.3528264',
    '-111.789027',
    '1236 Feet',
    "[u'  ASCE 7* Ground Snow LoadElevation 2,000 feet', u' Ground Snow Load is0 psf']"
]

我要把这个转换成表格

^{pr2}$

Tags: load表格psf名单snowaugustgroundasce
1条回答
网友
1楼 · 发布于 2024-06-13 23:04:10

我同意cricket_007的观点,你真的应该从源头上解决这个问题,因为它的数据格式很差,而且任何解决方案都很脆弱,很容易被破坏。也就是说,如果您只需要一些快速而肮脏的东西,那么下面的代码应该在避免使用不安全的eval函数的同时做到这一点。在

from ast import literal_eval

def flatten(iterable):
    result = []

    for item in iterable:
        try:
            item_eval = literal_eval(item)
            if not isinstance(item_eval, list):
                raise ValueError()
        except (ValueError, SyntaxError):
            result.append(item)
        else:
            result.extend(flatten(item_eval))

    return result


>>> data = [
...     'August 28, 2017',
...     'gilbert arizona',
...     '33.3528264',
...     '-111.789027',
...     '1236 Feet',
...     "[u'  ASCE 7* Ground Snow LoadElevation 2,000 feet', u' Ground Snow Load is0 psf']"
... ]

>>> flatten(data)
['August 28, 2017', 'gilbert arizona', '33.3528264', '-111.789027', '1236 Feet', u'  ASCE 7* Ground Snow LoadElevation 2,000 feet', u' Ground Snow Load is0 psf']

相关问题 更多 >