python - 使用 join 在 python 中创建字典

标签 python dictionary join

我文档的每一行都包含一个信息字典:

{'O':34, 'D': 75, '2015-01':{'c':30,'f':90},'2016-01':{'c':100,'f':78,'r':90.5}}

预期是:

{'2015-01,c':30,'2015-01,f':90,'2016-01,c':100....}

我在 python 中试过这个:

for row in cursor:
       d = dict((''.join([l,',',row[l].keys()]),row[l].values())
                     for l in row.keys - ['O','D'])

但是我得到了这个错误: 类型错误:序列项 2:预期的 str 实例,找到 dict_keys 请任何帮助。 谢谢

最佳答案

假设您的嵌套总是一层深,您可以执行以下操作:

d = {'O':34, 'D': 75, '2015':{'c':30,'f':90},'2016':{'c':100,'f':78,'r':90.5}}

def join_dict(d):
    for k, v in d.items():
        if isinstance(v, dict):
            for k2, v2 in v.items():
                yield '{},{}'.format(k, k2), v2


result = {k: v for k, v in join_dict(d)}
print(result)
# {'2016,f': 78, '2016,r': 90.5, '2016,c': 100, '2015,f': 90, '2015,c': 30}

关于python - 使用 join 在 python 中创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39852686/

相关文章:

python - TensorFlow - 使用批量数据验证准确性

python - 检查用 Selenium 打开的浏览器是否仍在运行(Python)

python - Pandas - 比较 2 个数据帧以查找每天的第一个实例,其中值是第一个数据帧的倍数

iphone - 在字典中存储整数

mysql - 新手 : mysql join 2 tables to gether and count the results

python - Python 中的简单列表函数

python - 对字典进行排序并将其写入 CSV 文件

c# - 如何计算 C# 中嵌套字典中 int 值的出现次数

apache-spark - 如何确保由 Spark DataFrame join 引起的分区?

mysql - 使用日期范围和数字过滤器连接 2 个表