代码之家  ›  专栏  ›  技术社区  ›  Levent Ozbek

将类似字符串的列表求值为字符串

  •  0
  • Levent Ozbek  · 技术社区  · 4 年前

    假设我有一个类似这样的字符串:

        x = "['345565', '1234213', '12313523', '1232346345', '1223123']"
    

    在Python或numpy中是否有一个内置方法可以用来自动将其转换为列表?我很熟悉 eval() 方法和我要找的是同一个想法。

    1 回复  |  直到 4 年前
        1
  •  3
  •   ErnestBidouille    4 年前

    可以吗?

    import ast
    x = "['345565', '1234213', '12313523', '1232346345', '1223123']"
    print(ast.literal_eval(x))
    
        2
  •  1
  •   Phil_Miller    4 年前

    您可以使用python内置库ast。 ast docs

    >>> import ast
    >>> x = "['345565', '1234213', '12313523', '1232346345', '1223123']"
    >>> x_array = ast.literal_eval(x)
    >>> print(x_array)
    ['345565', '1234213', '12313523', '1232346345', '1223123']
    >>> type(x_array)
    <class 'list'>
    >>> x_array
    ['345565', '1234213', '12313523', '1232346345', '1223123']
    
        3
  •  1
  •   Dewald Abrie    4 年前

    json 模块,但您必须将单引号替换为双引号才能使其合法:

    import json
    x = "['345565', '1234213', '12313523', '1232346345', '1223123']"
    json.loads(x.replace("'", '"'))