首页 > 解决方案 > 使用理解为 Json 字典列表中的每个键添加前缀

问题描述

我希望为 a 中的每个键添加一个前缀,JSON因此我的消息如下所示,带有tmp.前缀

[{'tmp.p.class': 'B', 'tmp.timestamp': '2020-08-07 09:00:00'}, {'tmp.p.class': 'A', 'tmp.timestamp': '2020-08-07 09:00:05'}]

import json      
x = [{'p.class': 'B', 'timestamp': '2020-08-07 09:00:00'}, {'p.class': 'A', 'timestamp': '2020-08-07 09:00:05'}]
data = json.dumps(x)

y = [{'tmp.'+k: v for k, v in d.items()} for d in data]
print(y)

Traceback(最近一次调用最后一次):文件“./prog.py”,第 5 行,在文件“./prog.py”,第 5 行,在 AttributeError 中:'str' 对象没有属性'items'

标签: pythonjsondictionary-comprehension

解决方案


您不需要将 python 对象序列化为字符串。您可以直接对列表进行修改x

y = [{"tmp." + k: v for k, v in d.items()} for d in x]

推荐阅读