用Python编码发送JSON数据的正确方法

2024-07-07 09:13:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django上开发API,在后端用python编码数据,在java前端解码时遇到很多问题。在

有没有标准的规则可以有效地将正确的JSON数据发送到客户端应用程序?在

有一些印地语字符在前端没有被正确地接收到,它给出错误的说法是“JSON unterminated object at character”,所以我想问题出在我这边


Tags: 数据djangoapijson应用程序客户端标准object
1条回答
网友
1楼 · 发布于 2024-07-07 09:13:23

json.loads和{}通常用于对python中的JSON数据进行编码和解码。在

dumps获取一个对象并生成一个字符串,load将获取一个类似文件的对象,从该对象读取数据,并使用该字符串创建一个对象。在

编码器默认理解Python的本机类型(string、unicode、int、float、list、tuple、dict)。在

import json

data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
print 'DATA:', repr(data)

data_string = json.dumps(data)
print 'JSON:', data_string

值的编码方式与Python的repr()输出非常相似。在

^{pr2}$

编码,然后重新解码可能不会给出完全相同的对象类型。在

import json

data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
data_string = json.dumps(data)
print 'ENCODED:', data_string

decoded = json.loads(data_string)
print 'DECODED:', decoded

print 'ORIGINAL:', type(data[0]['b'])
print 'DECODED :', type(decoded[0]['b'])

特别是,字符串被转换成unicode,元组变成列表。在

$ python json_simple_types_decode.py

ENCODED: [{"a": "A", "c": 3.0, "b": [2, 4]}]
DECODED: [{u'a': u'A', u'c': 3.0, u'b': [2, 4]}]
ORIGINAL: <type 'tuple'>
DECODED : <type 'list'>

相关问题 更多 >