我在JSON上遇到问题,找不到合适的信息。在
首先,我设法用python编写代码来创建XML,而不是JSON。在
我想知道如何转换下面的xml writer类,以便转换为JSON writer类的等价物。在
from lxml import etree
import re
class XmlWriter:
# Function create a xml
def createNode(self,nodeName, parentNode = '', withAttribs = {}, withValue = ''):
if nodeName != '':
nodeName = re.sub(r'/', '_', nodeName)
nodeName = re.sub(r'#','id',nodeName)
if parentNode == '':
# Create a parent node
createdNode = etree.Element(nodeName)
else:
# Create a child node
createdNode = etree.SubElement(parentNode, nodeName)
# Put the Attributs with value
if withAttribs !={}:
for key,value in withAttribs.items():
createdNode.set(key,value)
# Put the text content of the xml node
if withValue != '':
createdNode.text = withValue
else:
pass
return createdNode
# Print the XML for information
def printXML(self,nodeName):
print (etree.tostring(nodeName, pretty_print=True))
# Save the XML on the file
def saveXML(self,nodeName,filename):
if nodeName != '' or filename !='':
with open(filename, "w") as f:
f.write(etree.tostring(nodeName, pretty_print=True))
else:
return False
我尝试了几项研究,试图创建一个等效的“树节点”,例如:
^{pr2}$但是,如果使用以下示例,如何创建一个类来获得结果:
n1 = CreateNode(name,parent_dependancy,value)...
非常感谢
JSON与XML非常不同,因此不可能获得一个等价的JSON Writer,因为您使用的是特定的XML特性(属性)。JSON允许复制对象结构。就Python而言,JSON只允许您编码
dict
s、list
s和简单标量值(如str
、int
等)。在如果您有这样的结构,从中获取JSON文档非常简单:
您可以使用
json.loads
以相同的方式读取JSON字符串。在可以使用JSON转储进行打印。像这样:
这很微妙,但是indent=2表示您希望数据打印得很好。在
相关问题 更多 >
编程相关推荐