Python:“List.append ='list'对象属性'append'是只读的”

时间:2012-02-20 19:16:08

标签: python json list solr

我正在尝试将Solr服务器的响应写入CSV文件。我是python的新手,并且已经获得了修改代码。最初代码看起来像这样......

for doc in response.results:
    status = json.loads(doc['status'])

脚本运行并打印正确的信息。但它只会打印一个结果(最后一个)。我认为这是因为循环不断地写出变量'status',直到它通过响应。

经过一番阅读后,我决定将这些信息存储在一个列表中。这样我就可以打印信息来分隔列表中的行。我创建了一个空列表并更改了下面的代码 -

for doc in response.results:
    list.append = json.loads(doc['status'])

我在尝试运行代码后得到了这个回复 -

`AttributeError: 'list' object attribute 'append' is read-only`.

我哪里错了?列表不是最好的方法吗?

3 个答案:

答案 0 :(得分:7)

>>> list.append
<method 'append' of 'list' objects>

您正在尝试修改内置append类的list方法!

只做

docstats = []
for doc in response.results:
    docstats.append(json.loads(doc['status']))

或等效地:

docstats = [json.loads(doc['status']) for doc in response.results]

答案 1 :(得分:1)

我不确定你要做什么。

我猜你还没有创建list变量。 list是一个python的内置类列表,所以如果没有变量来掩盖它,你将访问它。并且你试图修改它的一个属性,这是不允许的(它不像红宝石,你可以修补任何东西)。

这是你想要的吗? :

l=[]
for doc in response.results:
    l.append(json.loads(doc[‘status’]))

答案 2 :(得分:0)

尝试

list.append(json.loads(doc['status']))