当前位置: 首页 > 面试题库 >

将Python字符串转换为列表

史朗
2023-03-14
问题内容

我有一个列表格式,如下所示:

>>> x = "[26, 25]"
>>> list(x)
['[', '2', '6', ',', ' ', '2', '5', ']']

如何转换为包含如下所示元素的列表:

>>> x
[25, 26]

问题答案:

用途ast.literal_eval()

import ast

ast.literal_eval(x)

或使用将其视为JSON
json.loads()

import json

json.loads(x)

ast.literal_eval()以Python文字作为输入(因此Python源代码中的文本将为您提供一个值),json.loads()以JSON输入。

演示:

>>> import ast, json
>>> x = "[26, 25]"
>>> ast.literal_eval(x)
[26, 25]
>>> json.loads(x)
[26, 25]

只有当您的输入字符串中包含多个整数列表时,两者之间的区别才会发挥作用。JSON字符串包含unicode,ast.literal_eval()在Python
2上无法正确解释,并且JSON类型只是ast.literal_eval()支持的一部分。

>>> x = '["List", "with", "strings", "including", "snowman", "\u2603"]'
>>> ast.literal_eval(x)
['List', 'with', 'strings', 'including', 'snowman', '\\u2603']
>>> json.loads(x)
[u'List', u'with', u'strings', u'including', u'snowman', u'\u2603']
>>> x = "(1, 2, 3, 'a tuple is Python syntax, not JSON')"
>>> ast.literal_eval(x)
(1, 2, 3, 'a tuple is Python syntax, not JSON')
>>> json.loads(x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python2.7/json/decoder.py", line 365, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python2.7/json/decoder.py", line 383, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded


 类似资料:
  • 问题内容: 将元组列表转换为字符串的最Python方式是哪种? 我有: 而且我要: 我对此的解决方案是: 有没有更Python的方式来做到这一点? 问题答案: 您可能想使用一些简单的方法,例如: ..这很方便,但不能保证能正常工作

  • 问题内容: 我正在研究python和网络。 肯定是在听。但这似乎需要转换为文本字符串。 我见过有人使用 struct.unpack() ,但是我不确定它是如何工作的。转换方式是什么? 问题答案: 您从中得到的是一个字符串: 从套接字接收数据。返回值是一个字节对象,表示接收到的数据。 在Python 3.x中,要将字符串转换为Unicode文本字符串,您必须知道该字符串使用什么字符集编码,因此可以调

  • 问题内容: 每当我致电时,都会收到以下错误消息: 还有其他方法可以将ElementTree对象转换为XML字符串吗? 追溯: 问题答案: 对象没有方法。挂断该电话,该电话将正常工作: 仅当有实例时才需要使用。 其他说明: 这将产生一个 bytestring ,在Python 3中是该类型。 如果必须有一个对象,则有两个选择: 从UTF-8解码结果字节值: 使用; 这样可以避免编码/解码周期: 如果

  • 问题内容: 我正在使用以下代码从外部程序获取标准输出: 方法返回一个字节数组: 但是,我想将输出作为普通的字符串使用。这样我就可以像这样打印它: 我认为这就是方法的用途,但是当我尝试使用它时,我又得到了相同的字节数组: 如何将字节值转换回字符串?我的意思是,使用”batteries”而不是手动进行操作。我希望它与Python 3兼容。 问题答案: 你需要解码bytes对象以产生一个字符串:

  • 问题内容: 给定python字符串列表,如何自动将其转换为正确的类型?意思是,如果我有: 我希望将其转换为列表 其中第一个元素是stuntng,第二个元素是int,第三个元素是float,第四个元素是int。 我怎样才能做到这一点?谢谢。 问题答案: import ast

  • 问题内容: 我有一个清单 我想将其转换为字典 我该怎么做? 问题答案: 采用: 返回: 如果需要整数,请在以下位置更改分配: 这将给出: