0
我需要将一个结构的JSON数据转换为另一个结构,我可以使用它来生成NvD3图表。在过去的几天里,我一直在问和阅读要做到这一点,并取得了部分解决方案。它将工作,除非我再添加一个键/值到“data_json”字典。Python Json for循环
最奇怪的是,尽管引用“datos_TEU”的行被注释了,但它仍然将值分配给该字典条目并且不知道为什么。即使我只是取消注释第一个循环,它将以与其他键相同的数据结束。所以我最终得到2个不同的密钥中插入的相同数据的副本。除此之外,我不断重复数据或在循环中“重叠”。
当然,我正在做一个大的noob错误,但我无法看到它。我一直在打印所有的东西,尝试不同的东西整个上午和下午,但我无法捕捉到错误。
data = json.load(url_obj)
tarifas = ('2.0A','2.0DHA','2.0DHSA')
fecha = '12345' #Just to develop
terminos = ('Dia','Hora','GEN','NOC','VHC','COFGEN','COFNOC','COFVHC','PMHGEN','PMHNOC','PMHVHC','SAHGEN','SAHNOC','SAHVHC','FOMGEN','FOMNOC','FOMVHC','FOSGEN','FOSNOC','FOSVHC','INTGEN','INTNOC','INTVHC','PCAPGEN','PCAPNOC','PCAPVHC','TEUGEN','TEUNOC','TEUVHC')
data_json = {'datos_TOT':[],'datos_TEU':[],'Fecha':fecha}
for i,tarifa in enumerate(tarifas):
tarifas_dicc= {'tarifa':tarifa}
tarifas_dicc['data'] = [] #Clean and create a new empty one.
data_json['datos_TOT'].append(tarifas_dicc)
=> #data_json['datos_TEU'].append(tarifas_dicc) I found that problems start when I uncomment this line. From here on the returned data will have duplicities or data that should´nt be there.
list_terminos = terminos[(2+i)::3] #The original data is coded in a single dictionary and I have to split it into 3 different categories.
for j in range (0,3):
periodo_dicc = {'periodo':'{0}-{1}'.format(j,j+1)}
periodo_dicc['data'] = [] #Clean and create a new empty one.
#data_json['datos_TEU'][i]['data'].append(periodo_dicc)
data_json['datos_TOT'][i]['data'].append(periodo_dicc)
for k,termino in enumerate(list_terminos):
data_dicc_TOT = {'value':data["PVPC"][j][termino]} #This structure come from the original data_json i´m using
data_dicc_TOT['label'] = termino
#data_dicc_TEU = {'value':data["PVPC"][j][list_terminos[0]]}
#data_dicc_TEU['label'] = list_terminos[0]
#data_json['datos_TEU'][i]['data'][j]['data'].append(data_dicc_TEU)
data_json['datos_TOT'][i]['data'][j]['data'].append(data_dicc_TOT)
我在哪里分配数据到另一个键?
谢谢!完全noob问题...我没有记得python如何处理这些事情... – XcodeX 2015-02-09 21:42:10