可能重复:
使用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 = urlfetch.fetch(url,args,'post');
if result.status_code == 200:
dom = minidom.parseString( result.content ) #.encode( "utf-8" ) )
dom2json = simplejson.dump(dom,"utf-8")
Run Code Online (Sandbox Code Playgroud)
我很快就认为Python可能是一种很好的语言,但是没有一个用户知道如何以清晰简洁的方式实际记录任何内容.
这个问题的态度无助于从这些相同的Python用户那里获得答案.
正如在相关问题的答案中所提到的,XML和JSON之间没有一对一的对应关系,因此无法自动完成转换.
在文档中,simplejson您可以找到它能够序列化的类型列表,它们基本上是本机Python类型(dict,list,unicode,int,float,True/False,None).
因此,您必须创建仅包含这些类型的Python数据结构,然后您将提供这些类型simplejson.dump().