2017-03-07 105 views
-2

我已经得到了下面的.json文件,必须被转换成列表的Python列表进行进一步分析。JSON到列表列表 - Python

这里是输入看起来怎么样:

[{"RFA_2F":4,"RFA_2A":"E","TARGET_B":0,"LASTGIFT":5,"AVGGIFT":7.4814814815,"PEPSTRFL":"X","LASTDATE":9512,"WEALTH_INDEX":3.33,"INCOME":3,"FISTDATE":9001,"NAME":"Reshama Y. Saat"}, 
{"RFA_2F":4,"RFA_2A":"E","TARGET_B":0,"LASTGIFT":10,"AVGGIFT":6.8125,"PEPSTRFL":"X","LASTDATE":9512,"WEALTH_INDEX":2.60,"INCOME":1,"FISTDATE":8702,"NAME":"Alex P. Singh"}, 
{"RFA_2F":1,"RFA_2A":"E","TARGET_B":0,"LASTGIFT":11,"AVGGIFT":7.6428571429,"PEPSTRFL":"X","LASTDATE":9504,"WEALTH_INDEX":5.14,"INCOME":4,"FISTDATE":8701,"NAME":"Vamsee M. Doban"},...] 

的代码我目前正在使用:

import json 
f = open('assess2_data.json') 
d = json.load(f) 

training = [] 
for row in d: 
    for field in row: 
     row = [] 
     row.append([field]) 
    training.append(row) 

我知道有一个错误,但我不能想办法解决这一问题:

类型错误:列表索引必须是整数,不是Unicode

输出应该是这样的:

[[4,"E",0,5,7.4814814815,"X",9512,3.33,3,9001,"Reshama Y. Saat"],...] 

回答

1

JSON文件很简单,所以你可以通过使用dict.values()

import json 
with open('test.json') as f: 
    d = json.load(f) 
    print [row.values() for row in d] 
+0

感谢您快速响应,@McGrady得值!有没有办法获得实际的字符串,而不是unicodes? –

+0

尝试'str()'方法,看看[Python字符串打印为u'String'](http://stackoverflow.com/questions/599625/python-string-prints-as-ustring)和[如何将Unicode字符串转换为常规字符串](http://stackoverflow.com/questions/4855645/how-to-turn-unicode-strings-into-regular-strings) – McGrady