- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个我不想序列化为 json 的 GeoDjango 模型对象。在我看来,我是这样做的:
lat = float(request.GET.get('lat'))
lng = float(request.GET.get('lng'))
a = Authority.objects.get(area__contains=Point(lng, lat))
if a:
return HttpResponse(simplejson.dumps({'name': a.name,
'area': a.area.geojson,
'id': a.id}),
mimetype='application/json')
问题是 simplejson
将 a.area.geojson 视为一个简单的字符串,即使它是预先生成的漂亮的 json。这很容易通过 eval()
'ing area-string 在客户端中修复,但我想正确地做到这一点。我可以告诉 simplejson
一个特定的字符串已经是 json 并且应该按原样使用(而不是作为简单字符串返回)吗?或者有其他解决方法吗?
更新澄清一下,这是当前返回的 json:
{
"id": 95,
"name": "Roskilde",
"area": "{ \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [ 12.078701, 55.649927 ], ... ] ] ] }"
}
挑战在于让“区域”成为一个 json 字典而不是一个简单的字符串。
最佳答案
我认为做到这一点的简洁方法是扩展 JSONEncoder,并创建一个编码器来检测给定对象是否已经是 JSON。如果是 - 它只是返回它。如果不是,则使用普通的 JSONEncoder 对其进行编码。
class SkipJSONEncoder(simplejson.JSONEncoder):
def default(self, obj):
if isinstance(obj, str) and (obj[0]=='{') and (obj[-1]=='}'):
return obj
return simplejson.JSONEncoder.default(self, obj)
在您看来,您使用:
simplejson.dumps(..., cls=SkipJSONEncoder)
如果您有更简洁的方法来测试某些内容是否已经是 JSON,请使用它(我的方式 - 查找以“{”开头并以“}”结尾的字符串很丑陋)。
关于python - 使用 Python simplejson 返回预生成的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027668/
我有 Django 版本 1.7 和 Python 版本 2.7.5 - 我使用 pip install simplejson 和 apt-get install python-simplejson
当我使用像 &simplejson.Json{v}(v 是从文件读取的接口(interface),它的实际数据结构是 map[string]interface{})时,然后显示此错误。详情: 一个名为
我需要解析从 YQL 获得的 json,但我遇到了麻烦,因为我没有得到我需要的结果。我正在使用简单的 json (https://code.google.com/p/json-simple/wiki/
这个问题已经有答案了: How can I parse (read) and use JSON in Python? (5 个回答) 已关闭 6 个月前。 我只是有一个关于 SimpleJSON 文档
我正在尝试使用 django python 向客户端发送带有换行符的 json 字符串: string += u'hello\n' data = {'data':str
我正在尝试将 json 结果存储在 GAE 数据存储中,以便稍后读取。我将它转储到一个字符串中,然后存储它,然后读取它并将其加载回字典中。但加载后我无法再将其作为字典阅读。 result = free
我正在尝试生成一个格式正确的 json 对象以在 javascript 中使用。我试过 simplejson.dumps(string),但它在我的本地机器(在 python shell 中)和在服务
问题是,在我的笔记本电脑中,我有 python 2.7.5 和一些 Simplejson 版本,而在我的 Debian 6 服务器上,我有 Python 2.6.6 和一些 simplejson 版本
这个问题在这里已经有了答案: Items in JSON object are out of order using "json.dumps"? (8 个答案) 关闭 9 年前。 在 Django
我正在使用 Mega API 和 Python,希望生成一个可由 Python 读取的文件夹树。目前,我正在使用 Mega 的 API 提供的 JSON 响应,但由于某种原因,我在解析它时遇到了麻烦。
我在 App Engine 中使用 Alchemy API,因此我使用 simplejson 库来解析响应。问题是响应中的条目具有 sme 名称 { "status": "OK",
我有一个非常简单的 json,我无法使用 simplejson 模块进行解析。复制: import simplejson as json json.loads(r'{"translatedatt1":
我想这一定有一个简单的答案,但我很挣扎:我想获取一个 url(输出 json)并在 python 中的可用字典中获取数据。我被困在最后一步了。 >>> import urllib2 >>> impor
我正在尝试使用 simplejson.dumps 将 Python 数组编码为 json: In [30]: s1 = ['test', ''] In [31]: simplejson.dumps(s
我正在尝试使用 simplejson 来解析 JSON 字符串。由于某种原因,当我使用 simplejson.loads 时,我收到以下错误: ERROR:root:Exception in requ
当我尝试编译时,出现以下错误: ImportError: No module named simplejson 所以我尝试了: pip install simplejson 我得到: Requirem
为什么 Django 给我这个异常 [(7, u'Acura'), (18, u'Alfa Romeo'), ...] is not JSON serializable 当我尝试 data = Veh
我已将 json 数据加载到 api_result 变量中。现在我需要提取特定字段(name、surname、city 等)。我应该如何验证它们是否存在? api_result = json.load
我想提取 JSONArray 对象的所有注释,我发现了这篇文章 https://www.mkyong.com/java/json-simple-example-read-and-write-json/
Input : {"id": null, "type": null, "order_for": null, "name": "Name"} 代码: input_map = simplejson.dum
我是一名优秀的程序员,十分优秀!