У меня есть функция, которая преобразует запрос в словарь, который содержит список словарей. Есть ли простой способ заменить только одну из пар данных ключей на строку?
Моя функция:
def logs(query):
client = gcb.Client()
query_job = client.query(query)
CSV_COLUMNS ='end_time,device,device_os,device_os_version,latency,megacycles,cost,device_brand,device_family,browser_version,app,ua_parse,key'.split(',')
ret = {'instances': []}
for rows in query_job.result():
var = list(rows)
l1 = dict(zip(CSV_COLUMNS,var))
ret['instances'].append(l1)
return ret
Который затем производит этот словарь:
{'instances': [{'app': u'565',
'browser_version': u'11.0',
'cost': u'1.3075e-08',
'device': u'0',
'device_brand': u'0',
'device_family': u'Other',
'device_os': u'Windows 7',
'device_os_version': u'0',
'end_time': u'2018-04-17',
'key': 1,
'latency': 0.189589,
'megacycles': 112.0,
'ua_parse': u'0'},
{'app': u'565',
'browser_version': u'65.0.3325',
'cost': u'1.3075e-08',
'device': u'0',
'device_brand': u'0',
'device_family': u'Other',
'device_os': u'Windows 10',
'device_os_version': u'0',
'end_time': u'2018-04-16',
'key': 2,
'latency': 0.131523,
'megacycles': 190.0,
'ua_parse': u'0'}]}
Мне нужно сделать пару ключей 'key'
строкой. Так что key':2
должно быть 'key':'2'
Я попробовал это, но он просто сделал строки всех типов данных "
def logs(query):
client = gcb.Client()
query_job = client.query(query)
CSV_COLUMNS ='end_time,device,device_os,device_os_version,latency,megacycles,cost,device_brand,device_family,browser_version,app,ua_parse,key'.split(',')
ret = {'instances': []}
for rows in query_job.result():
var = list(rows)
l1 = dict(zip(CSV_COLUMNS,var))
l1.update({str(k):str(v) for k,v in l1.items()})
ret['instances'].append(l1)
return ret