python中,在json字符串和dict字典变量之间转换,用json
但是最近用了Flask的json,去把dict转换为字符串:
from flask import json
def jsonToStr(jsonDict, indent=2):
return json.dumps(jsonDict, indent=2, ensure_ascii=False)
现在需要搞清楚:
在Flask中,如何把json字符串转换为对应的dict变量。
How to manage JSON requests using Flask for Python Code Example Runnable
data = json.loads(jsondata)
json How do I jsonify a list in Flask? Stack Overflow
python How to return json using Flask web framework Stack Overflow
python json.dumps vs flask.jsonify Stack Overflow
flaskjson vs python json
python Flask Display Json in a Neat Way Stack Overflow
API ― Flask Documentation (0.11)
try:
import simplejson as json
except ImportError:
import json
不用再去导入python的json了。
直接用Flask中导入的json,同样有各种功能,包括loads:
flask.json.dumps(obj, **kwargs)
Serialize obj to a JSON formatted str by using the application’s configured encoder (json_encoder) if there is an application on the stack.
This function can return unicode strings or ascii-only bytestrings by default which coerce into unicode strings automatically. That behavior by default is controlled by the JSON_AS_ASCII configuration variable and can be overridden by the simplejson ensure_ascii parameter.
flask.json.dump(obj, fp, **kwargs)
Like dumps() but writes into a file object.
flask.json.loads(s, **kwargs)
Unserialize a JSON object from a string s by using the application’s configured decoder (json_decoder) if there is an application on the stack.
flask.json.load(fp, **kwargs)
Like loads() but reads from a file object.
【总结】
然后用:
from flask import json
def strToJson(jsonStr):
jsonDict = json.loads(jsonStr, encoding="utf-8")
gLog.debug("jsonStr=%s, jsonDict=%s", jsonStr, jsonDict)
return jsonDict
把传入的json字符串,转换为字典变量:
messageStr={
"type" : "User",
"id" : "user-4d51faba-97ff-4adf-b256-40d7c9c68103",
"event" : "SaveLocation",
"data" : {
"longitude": 31.2927,
"latitude": 120.72,
"shortStr": "双湖湾花园III期",
"fullStr": "江苏省苏州市吴中区西华林街双湖湾花园III期"
}
}, messageDict={u’data’: {u’latitude’: 120.72, u’fullStr’: u’\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02\u5434\u4e2d\u533a\u897f\u534e\u6797\u8857\u53cc\u6e56\u6e7e\u82b1\u56edIII\u671f’, u’longitude’: 31.2927, u’shortStr’: u’\u53cc\u6e56\u6e7e\u82b1\u56edIII\u671f’}, u’type’: u’User’, u’id’: u’user-4d51faba-97ff-4adf-b256-40d7c9c68103′, u’event’: u’SaveLocation’}
注:
此处Flask中的json,内部的逻辑是:
try:
import simplejson as json
except ImportError:
import json