python-2.7 - Python:将一个键值对转换为字典中的字符串
问题描述
我有一个函数可以将查询转换为包含字典列表的字典。有没有一种简单的方法可以将其中一个键对数据类型更改为字符串?
我的功能:
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
解决方案
您可以检查密钥是否是所需的值。您的代码中的一个小改进就足够了:
l1.update({str(k): str(v) if k == 'key' else v for k, v in l1.items()})
推荐阅读
- javascript - RxJS:如何发出 takeWhile 评估为 false 的事件?
- swift - Swift:具有符合相等协议的嵌套枚举案例的更少代码
- android - 如何在材料设计TextInputLayout中实现错误消息的旧外观?
- java - 将 entityGraph 与会话一起使用
- javascript - Laravel Mix 中的 Webpack 别名为 node_modules
- typescript - Firebase 身份验证错误代码:无法导航文件
- javascript - 在打字稿中导入文件的正确方法是什么?
- excel - 如何创建嵌套循环以检查第二个列表中是否存在值
- java - Maven:如何编译?保持文件结构完整
- html - 使用引导折叠的手风琴角js