Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从表示列表的字符串创建列表_Python_Json_Api_Xmlrpcclient - Fatal编程技术网

Python 从表示列表的字符串创建列表

Python 从表示列表的字符串创建列表,python,json,api,xmlrpcclient,Python,Json,Api,Xmlrpcclient,可能重复: 如何从该字符串中获取错误列表 >>> out = "<class 'api.exceptions.DataError'>:[u'Error 1', u'Another error']" 我得到一个例外: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/json/__init__

可能重复:

如何从该字符串中获取错误列表

>>> out = "<class 'api.exceptions.DataError'>:[u'Error 1', u'Another error']"
我得到一个例外:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.7/json/_init__.py”,第326行,加载
返回\u默认\u解码器。解码
文件“/usr/lib/python2.7/json/decoder.py”,第366行,在decode中
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
原始解码中的文件“/usr/lib/python2.7/json/decoder.py”,第384行
raise VALUERROR(“无法解码JSON对象”)
ValueError:无法解码任何JSON对象
你能建议一些方法来调整代码以得到我想要的吗

编辑:添加用例。

我的问题适用的背景是:

try:
    # some code generating an xmlrpclib.Fault exception
    pass
except xmlrpclib.Fault, err:
    # here print dir(err) gives:
    # ['__class__', '__delattr__', '__dict__', '__doc__', '__format__',
    # '__getattribute__', '__getitem__', '__getslice__', '__hash__', '__init__',
    # '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', 
    # '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', 
    # '__unicode__', '__weakref__', 'args', 'faultCode', 'faultString', 'message']

    exit(err.faultString)
    # exits with: "<class 'api.exceptions.DataError'>:[u'Error 1', u'Another error']"
试试看:
#某些代码生成xmlrpclib.Fault异常
通过
除xmlrpclib.Fault外,错误:
#这里的打印目录(err)给出:
#[''类'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',
#“\uuuu getattribute”、“\uuuu getitem”、“\uuuu getslice”、“\uuuu hash”、“\uuuu init”,
#"模","新","减少","减少","减少","增加","报告",,
#“\uuuuu setattr\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
#“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
退出(err.faultString)
#退出时显示::[u'错误1',u'另一个错误']
您应该使用:

import ast

ls="['a','b','c']"

ast.literal_eval(ls)
Out[178]: ['a', 'b', 'c']
或作为完整的:

In [195]: ast.literal_eval(out.split(':')[1])
Out[195]: [u'Error 1', u'Another error']
你应使用:

import ast

ls="['a','b','c']"

ast.literal_eval(ls)
Out[178]: ['a', 'b', 'c']
或作为完整的:

In [195]: ast.literal_eval(out.split(':')[1])
Out[195]: [u'Error 1', u'Another error']

看起来您试图打印一个异常;您可以使用
.args
参数访问异常的参数:

print exc.args[0]

看起来您试图打印一个异常;您可以使用
.args
参数访问异常的参数:

print exc.args[0]

为什么不访问包含该列表的异常的属性呢?我这样做了,但是对于xmlrpclib Fault对象的工作方式,我认为这是不可能的(或者是可能的,我只是不知道如何做)。为什么不访问包含该列表的异常的属性呢?我这样做了,但是对于xmlrpclib Fault对象的工作方式,我认为这是不可能的(或者是可能的,我只是不知道如何做)。在我的例子中,
exc.args
是一个空元组。@Gundalino:异常可能是忽略约定。执行
print dir(exc)
来检测它有哪些属性,或者向我们显示真正的异常,而不是一个示例模块名。在我的例子中,
exc.args
是一个空元组。@Guandalino:异常可能忽略了约定。执行
print dir(exc)
以检测它确实具有哪些属性,或者向我们显示真正的异常,而不是一个示例模块名。