У меня есть словарь, который использует строки (редактировать) в качестве ключей и сохраняет списки списков в качестве значений.python - списки считываются из csv как строки
dict = {key1: [[data1],[data2],[data3]], key2: [[data4],[data5]],...etc}
EDIT: где переменные данных являются строки, содержащие различные типы данных из преобразованных панд DataFrame
Ex.
df = pd.DataFrame()
df['City'] = ['New York','Austin','New Orleans','New Orleans']
df['State'] = ['NY','TX','LA','LA']
df['Latitude'] = [29.12,23.53,34.53,34.53]
df['Time'] = [1.46420e+09,1.47340e+09,1.487820e+09,1.497820e+09]
City State Latitude Time
New York NY 29.12 1.46420e+09
Austin TX 23.53 1.47340e+09
New Orleans LA 34.53 1.487820e+09
New Orleans LA 34.53 1.497820e+09
dict = {}
cities = df['City'].unique()
for c in cities:
temp = df[df['City'] == c]
dict[c] = temp.as_matrix().tolist()
#which outputs this for a given key
dict['New Orleans'] = [['New Orleans' 'LA' 34.53 1.487820e+09],
['New Orleans' 'LA' 34.53 1.497820e+09]]
Я храню его как CSV, используя следующие:
filename = 'storage.csv'
with open(filename,'w') as f:
w = csv.writer(f)
for key in dict.keys():
w.writerow((key,dict[key]))
Затем я прочитал файл обратно в словарь, используя следующее:
reader = csv.reader(open(filename, 'r'))
dict = {}
for key,val in reader:
dict[key] = val
вал приходит в поисках совершенной , за исключением того, что теперь это строка. например, key1 выглядит следующим образом:
dict[key1] = "[[data1],[data2],[data3]]"
Как я могу читать значения в виде списков или удалить кавычки из считанных версии Вала?
Какие переменные 'data1',' data2', и т.д.? Показать [минимальный полный код] (http://stackoverflow.com/help/mcve). –
CSV не знает, что такое список python. Почему бы вам не использовать json? – polku
Предполагая, что 'val' - это строка, представляющая список строк, тогда' d [key] = ast.literal_eval (val) '. Кроме того, не называйте словарь 'dict'. –