**如果您尝试运行代码,请将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,
答案 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)