为了账号安全,请及时绑定邮箱和手机立即绑定

将此python字典转换为JSON格式吗?

将此python字典转换为JSON格式吗?

繁花不似锦 2021-03-29 14:26:28
我有一个要转换成json的python字典。Python字典:{"20090209.02s1.1_sequence.txt": [645045714, 3559.6422951221466, 206045184], "20090209.02s1.2_sequence.txt": [645045714, 3543.8322949409485, 234618880]}所需的输出:{       "file_name":"20090209.02s1.1_sequence.txt",       "file_information": [645045714, 3559.6422951221466, 206045184],    {       "file_name":"20090209.02s1.2_sequence.txt",       "file_information": [645045714, 3543.8322949409485, 234618880],    }}尝试过,json.dumps但是我没有得到想要的输出。
查看完整描述

3 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

您需要首先创建具有正确格式的结构:


import json


dict_ = {"20090209.02s1.1_sequence.txt": [645045714, 3559.6422951221466, 206045184], "20090209.02s1.2_sequence.txt": [645045714, 3543.8322949409485, 234618880]}

values = [{"file_name": k, "file_information": v} for k, v in dict_.items()]

json.dumps(values, indent=4)

请注意,所需的JSON输出对我而言无效。这是此代码的输出:


[

    {

        "file_name": "20090209.02s1.1_sequence.txt", 

        "file_information": [

            645045714, 

            3559.6422951221466, 

            206045184

        ]

    }, 

    {

        "file_name": "20090209.02s1.2_sequence.txt", 

        "file_information": [

            645045714, 

            3543.8322949409485, 

            234618880

        ]

    }

]


查看完整回答
反对 回复 2021-04-02
?
慕后森

TA贡献1802条经验 获得超5个赞

将键值对拆分为单独的字典:


json.dumps([{'file_name': key, 'file_information': value} for key, value in yourdict.iteritems()])

请注意,输出的顺序将是任意的(字典没有固定的顺序)。您可能需要对输出进行排序以生成可预测的列表:


from operator import itemgetter


data = [{'file_name': key, 'file_information': value} for key, value in yourdict.iteritems()]

data.sort(key=itemgetter('file_name'))

json.dumps(data)

这将产生:


>>> data = [{'file_name': key, 'file_information': value} for key, value in yourdict.iteritems()]

>>> data.sort(key=itemgetter('file_name'))

>>> json.dumps(data)

'[{"file_name": "20090209.02s1.1_sequence.txt", "file_information": [645045714, 3559.6422951221466, 206045184]}, {"file_name": "20090209.02s1.2_sequence.txt", "file_information": [645045714, 3543.8322949409485, 234618880]}]'

>>> print json.dumps(data, indent=4)


[

    {

        "file_name": "20090209.02s1.1_sequence.txt",

        "file_information": [

            645045714,

            3559.6422951221466,

            206045184

        ]

    },

    {

        "file_name": "20090209.02s1.2_sequence.txt",

        "file_information": [

            645045714,

            3543.8322949409485,

            234618880

        ]

    }

]


查看完整回答
反对 回复 2021-04-02
  • 3 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信