我正在开发一个函数,获得一个字符串的字典,我需要追加到另一个字典。之后,我需要把它像JSON一样解析,以做一个post请求。我的问题是,我不能正确地解析,最后的JSON没有嵌套的字典。这个函数是这样的。
def namefunction(field_string):
dfield01 = "1234567890"
dfield02 = "abcdefgh"
headers = { 'content-type': 'application/json', 'Accept-Charset': 'UTF-8' }
endpoint = "https://url.to.endpoint"
dataSend= { "dfield01": dfield01, "dfield02": dfield02 }
dataSend["field_string"] = json.loads(field_string)
r = request.post(url=endpoint, data=json.dumps(dataSend), headers=headers)
return HttpResponse(r, mimetype='aplication/javascript')
我在这个函数中得到的字符串是这样的。
field_string = '{"0":"whatever 000","1":"whatever 001\nwhatever001b","2":"whatever 002\nwhatever 002b"}'
我使用的是Python2.7(我无法改变)。
#### 2019-09-17更新
谢谢你的建议 @alex。我用 json.loads() 做了一个类似的方法,但是当我试图把输出放在另一个字典里时,第一个字典就失去了他的格式。我试着用一个例子来解释。
With this...
# the same -> field = json.loads(field_string)
field = ast.literal_eval(field_string)
return HttpResponse(field, mimetype='application/javascript')
我在输出中得到一个JSON格式,但如果我这样做 ...
data = { "name_field": json.loads(field_string) }
... or this:
data = { "name_field": ast.literal_eval(field_string) }
当我检查数据输出时,我得到一个字符串的值。我做错了什么?
请问有什么线索吗?