我正在使用Flask Restful创建一个简单的API,该API在get Response中返回JSON。 我所有的方法都很好,我的问题是响应结果中的细节,因为JSON实际上是以字符串形式出现的,我不知道该怎么做。
当我用json.dumps()转换python dict时发生问题
我尝试不使用json.dumps()方法来执行此操作,并且结果以所需的格式显示,但不是实际有效的JSON。
这是我的代码:
class People(Resource):
def get(self):
handle = open("json_test.txt", "r")
txt = handle.read()
json = self.names(txt)
return jsonify({'result': json})
def names(self, data):
json.loads(data)
print(data)
ids = []
names = []
for n in data['people']:
print(n)
id = n['id']
name = n['name']
ids.append(id)
names.append(name)
test_list = []
counter = 0
for item in names:
test_item = {"id": ids[counter], "name": names[counter]}
test_list.append(test_item)
counter = counter+1
names_json = json.dumps(test_list, ensure_ascii=False)
print(names_json)
return names_json
这是我想要的输出:
{
"result": {
"people": [
{
"id": "12345",
"nome": "Felipe"
},
{
"id": "54321",
"nome": "Jean"
}
]
}
}
但是我得到了这个实际输出:
{
result: "{"people": [{"id": "54321", "name": "Felipe"}, {"id": "12345", "name": "Jean"}]}"
}
即将到来:result =“ {json}”,一个字符串,而不是实际的json,但是双引号中的数据是有效的json。
答案 0 :(得分:0)
这项工作可以吗?
return names_json["result"]