Python:要列出的字符串(不更改单词)

时间:2018-02-12 03:23:00

标签: python string list

**如果您尝试运行代码,请将Tall设置为字符串,谢谢。

我从POST网站上删除了这个,Tall看起来像一个列表,但事实并非如此。它是一个“字符串”,我已经使用了一些拆分来使它整洁。我只想知道是否有办法将其作为列表并使用简单的方法来提取数据。否则,我很难将所有这些分开。

Tall的类型是字符串,我想从Tall:

中提取值
Tall=[{"SALEDATE":"2018/02/06","CARID":"2002","CERTPHOTO1":"Y"},
 {"SALEDATE":"2018/02/06","CARID":"4791","CERTPHOTO1":""}]

代码:

print(type(Tall))

class'str'

print(Tall[1])

{

但是当我尝试这样做时:

for i in range(2):
    result=list(Tall[i].values())

错误说:

AttributeError: 'str' object has no attribute 'values'

我想从字符串到列表而不改变Tall的任何内容,是否可能?

我预期的结果:

2018/02/06,2002,Y
2018/02/06,4791,

3 个答案:

答案 0 :(得分:3)

我想你的TALL是这样的。 (添加单引号为字符串)。您的问题(如何将字符串转换为列表)的答案是通过 eval

>>> tall_str = '[{"SALEDATE":"2018/02/06","CARID":"2002","CERTPHOTO1":"Y"},{"SALEDATE":"2018/02/06","CARID":"4791","CERTPHOTO1":""}]'
>>> print(type(tall_str))
<class 'str'>

(1)json.loads

>>> import json
>>> tall_list = json.loads(tall_str)
>>> print(type(tall_list))
<class 'list'>

(2)eval

>>> tall_list = eval(tall_str)
>>> print(type(tall_list))
<class 'list'>

答案 1 :(得分:1)

您可以使用json.loads()

>>> import json
>>> tall = json.loads('[{"SALEDATE":"2018/02/06", "CARID":"2002","CERTPHOTO1":"Y"},{"SALEDATE":"2018/02/06","CARID":"4791","CERTPHOTO1":""}]')
>>> tall
[{'SALEDATE': '2018/02/06', 'CARID': '2002', 'CERTPHOTO1': 'Y'}, {'SALEDATE': '2018/02/06', 'CARID': '4791', 'CERTPHOTO1': ''}]
>>> tall[0]
{'SALEDATE': '2018/02/06', 'CARID': '2002', 'CERTPHOTO1': 'Y'}
>>> tall[0].values()
dict_values(['2018/02/06', '2002', 'Y'])

答案 2 :(得分:0)

使用=Code.field1 特殊方法是获得所需结果的最简单方法。

以下是我如何解决您的问题:

__getitem__

执行上述代码后,我们会按照您要求的确切结果登陆:

Tall=[{"SALEDATE":"2018/02/06","CARID":"2002","CERTPHOTO1":"Y"}, {"SALEDATE":"2018/02/06","CARID":"4791","CERTPHOTO1":""}]
for i in Tall:
    sale = i.__getitem__('SALEDATE')
    carid = i.__getitem__('CARID')
    photo = i.__getitem__('CERTPHOTO1')
    print(sale,',',carid,',',photo)