新聞中心
使用json模塊提供的loads方法和dumps方法,可以很方便的載入和讀取json數(shù)據(jù)格式。而在具體實(shí)際應(yīng)用中,我們使用python數(shù)據(jù)格式是 string、list 或dict等,這類格式如何直接轉(zhuǎn)換為json格式呢?

專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)運(yùn)城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
可以借用python內(nèi)部的dict 字典方法將格式轉(zhuǎn)換為json格式并讀取,不帶參數(shù)示例如下:
一、不帶參數(shù)的class類轉(zhuǎn)化為json
class Foo(object):
def __init__(self):
self.x = 1
self.y = 2
foo = Foo()
# s = json.dumps(foo) # raises TypeError with "is not JSON serializable"
s = json.dumps(foo.__dict__) # s set to: {"x":1, "y":2}
調(diào)用上面的方法時(shí),print s時(shí),其值為:{“x”:1, “y”:2} 。
二、帶參數(shù)的class方法轉(zhuǎn)化為json
如果要傳入的是一個(gè)多行字符串參數(shù),其也可以自動(dòng)進(jìn)行轉(zhuǎn)義:
#!/usr/bin/env python
# coding=utf8
# Copyright (C) 2018 www.361way.com site All rights reserved.
import json
class Foo(object):
def __init__(self,cmd):
self.Command = cmd
cmd=""" #!/bin/bash echo "Result:4 " ps -ef|grep java|wc -l netstat -an|grep 15380 echo ";" """
foo = Foo(cmd)
s = json.dumps(foo.__dict__)
print s
其執(zhí)行輸出如下:
[root@localhost tmp]# python a.py
{"Command": "\n#!/bin/bash\n\necho \"Result:4 \"\nps -ef|grep java|wc -l\nnetstat -an|grep 15380\necho \";\"\n\n"}
后面的結(jié)構(gòu)體轉(zhuǎn)義部分,實(shí)際上就是json.JSONEncoder().encode方法處理的結(jié)果:
print json.JSONEncoder().encode(cmd)
可以用上面的命令進(jìn)行測試,將上面的代碼加入到上面python文件的最后,執(zhí)行的結(jié)果如下:
[root@localhost tmp]# python a.py
{"Command": "\n#!/bin/bash\n\necho \"Result:4 \"\nps -ef|grep java|wc -l\nnetstat -an|grep 15380\necho \";\"\n\n"}
"\n#!/bin/bash\n\necho \"Result:4 \"\nps -ef|grep java|wc -l\nnetstat -an|grep 15380\necho \";\"\n\n"
新聞標(biāo)題:python序列化json數(shù)據(jù)具體方法
URL鏈接:http://fisionsoft.com.cn/article/dppoccs.html


咨詢
建站咨詢
