用python怎么实现json和xml的互转

提问者:ken369 提问时间:2016年09月03日 人气:1
推荐答案
  1. 如果你想看怎么实现,你可以去看xmltodict这个第三方库,

  2. 如果你想直接使用,也是去看xnltodict这个库,

  3. 总的来说,就是你可以用xmltodict实现,先转换成python标准的dict,再用python自带的json.dumps()转换即可

辅助答案
用户:dgk126
2016年10月14日
ajax是属于template里面的一个异步请求而已,如果你在views里面传回来是你说的“实体对像(models)”的话,我就有点搞不明白了。。。

不知道你在那个view方法直接return的是什么?
如果使用json处理对象的话请使用:
from django.http import HttpResponse
from models import mymodels

import simplejson

...
def ajax(request):
a = mymodels.objects.all()[0]
'''
此处假设a中有name、age参数
model对象是不能直接作为json可以处理,必须先转换为dict类型
'''
result = {}
result['name'] = a.name
result['age'] = a.age
result = simplejson.dumps(result)
return HttpResponse(result)

此时用ajax访问这个试图返回的内容就是:

上面这种办法不是很好,建议先写一个template模板专门来显示此model内容。

假设模板ajax.html的内容为:
===================ajax.html===============
name: }<br />
age: }
=======================================

views视图如下:

from django.http import HttpResponse
from models import mymodels
from django.shortcuts import render_to_response

...
def ajax(request):
a = mymodels.objects.all()[0]
return render_to_response("ajax.html",)

此时用ajax访问这个视图返回的内容就是:

name: Jim Green
age: 14

以上的代码可能会有错误,因为是随手写的,希望能够帮到你

====修改了一下====
模板文件名打错了。。。
修改了一下就到了楼上的下面了,楼上你也太没水准了。直接复制

=====修改=====

使用model.__dict__属性可以获得字典,希望能帮到你
你的串号我已经记下,采纳后我会帮你制作
用户:云卷云舒_
2016年10月23日
直接转换的包是没有的。但python都有相关的处理json和xml的模块:
python <->json 推荐用simplejson或json;
python <->xml 推荐使用 ElementTree, python2.5已自带。
所以,你可以尝试做xml->python的,再利用simplejson的python->json的,就可以xml->json了(反之亦然)
不过要注意几点:
(1)再jsonify python object之前,需要先把python object unicode化,反正要注意编码问题就是了。
(2)xml->python,或者说xml->json有很多种conversion,常见的比如 tuple tree,JsonML, javascript-like JSON (Parker convention), XML-like JSON (see the BadgerFish convention). 各有优缺点,看你怎么选择啦。
(3)有一些现成的通过xslt把xml直接转成json的。
用户:sc19931129
2016年09月29日
去搜我写的:
【折腾】Python中xml和Json之间相互转换:xml转json,json转xml