可能重复:
使用Python将XML转换为JSON?
我在App Engine上做了一些工作,我需要将从远程服务器检索的XML文档转换为等效的JSON对象.
我正在使用xml.dom.minidom解析返回的XML数据urlfetch.我也试图django.utils.simplejson将解析后的XML文档转换为JSON.我完全不知道如何把两者挂在一起.下面是我正在修改的代码:
from xml.dom import minidom
from django.utils import simplejson as json
#pseudo code that returns actual xml data as a string from remote server.
result = urlfetch.fetch(url,'','get');
dom = minidom.parseString(result.content)
json = simplejson.load(dom)
self.response.out.write(json)
Run Code Online (Sandbox Code Playgroud) 我在SO上看到了一些关于将XML转换为JSON的方法的问题,但我有兴趣转向其他方式.是否有用于将JSON转换为XML的python库?
编辑:没有什么东西马上回来,所以我继续编写了一个解决这个问题的脚本.
Python已经允许您将JSON转换为本机dict(使用json或者在版本<2.6中simplejson),因此我编写了一个将本机dicts转换为XML字符串的库.
https://github.com/quandyfactory/dict2xml
它支持int,float,boolean,string(和unicode),array和dict数据类型以及任意嵌套(yay recursion).
一旦8小时过去,我会将此作为答案发布.
我需要加载XML文件并将内容转换为面向对象的Python结构.我想接受这个:
<main>
<object1 attr="name">content</object>
</main>
Run Code Online (Sandbox Code Playgroud)
把它变成这样的东西:
main
main.object1 = "content"
main.object1.attr = "name"
Run Code Online (Sandbox Code Playgroud)
XML数据将具有比这更复杂的结构,我不能硬编码元素名称.解析时需要收集属性名称并将其用作对象属性.
如何将XML数据转换为Python对象?
我有一个XML文件,格式如下:
<doc>
<id name="X">
<type name="A">
<min val="100" id="80"/>
<max val="200" id="90"/>
</type>
<type name="B">
<min val="100" id="20"/>
<max val="20" id="90"/>
</type>
</id>
<type...>
</type>
</doc>
Run Code Online (Sandbox Code Playgroud)
我想解析这个文档并构建一个哈希表
{X: {"A": [(100,80), (200,90)], "B": [(100,20), (20,90)]}, Y: .....}
Run Code Online (Sandbox Code Playgroud)
我将如何在Python中执行此操作?
可能重复:
使用Python将XML转换为JSON?
我正在导入XML feed并尝试将其转换为JSON以进行输出.我收到这个错误:
TypeError: <xml.dom.minidom.Document instance at 0x72787d8> is not JSON serializable
不幸的是,我对Python几乎一无所知.我正在Google App Engine上开发这个.我可以使用一些帮助,因为我正在进行的那个小小的2小时黑客现在正处于第3天.
XML数据:
<?xml version="1.0" ?><eveapi version="2">
<currentTime>2009-01-25 15:03:27</currentTime>
<result>
<rowset columns="name,characterID,corporationName,corporationID" key="characterID" name="characters">
<row characterID="999999" corporationID="999999" corporationName="filler data" name="someName"/>
</rowset>
</result>
<cachedUntil>2009-01-25 15:04:55</cachedUntil>
</eveapi>
Run Code Online (Sandbox Code Playgroud)
我的代码:
class doproxy(webapp.RequestHandler):
def get(self):
apiurl = 'http://api.eve-online.com'
path = self.request.get('path');
type = self.request.get('type');
args = '&'+self.request.get('args');
#assemble api url
url = apiurl+path
#do GET request
if type == 'get':
result = urlfetch.fetch(url,'','get');
#do POST request
if type == 'post':
result …Run Code Online (Sandbox Code Playgroud)