【发布时间】:2015-12-04 16:57:06
【问题描述】:
我需要将一些对象发布到烧瓶应用程序中,每个对象由 2 个键值对组成。
我正在使用邮递员测试将 1 个对象作为 json 发送,但我需要能够发送多个对象(同样每个对象都由 2 kv 对组成,如屏幕截图所示)
我的烧瓶应用看起来像:
json = request.get_json(force=True) # receives request from postman
for j in json:
print str(j)
test = [{'a': j['key1'], 'token':j['key2']} for j in json ]
我想将 json 重建成一个字典列表('test'),其中 dic 包含 2 个 kv 对(即每个 dic 是一个对象)。
不幸的是我意识到因为上面的json是
{u'key2': u'xyz', u'key1': u'abc'}
我明白了:
TypeError: string indices must be integers
请看TypeError: string indices must be integers with flask json
在这种情况下,只有 1 个对象,但是如何遍历 json 变量来构建我需要的 dics 列表?
【问题讨论】:
-
也许您需要
import json并使用json.loads将您检索到的内容转换为字典,以便j['key1']有效? -
感谢您查看此内容,我不确定我是否理解。 {u'key2': u'xyz', u'key1': u'abc'} 已经是一个 dic。您介意详细说明吗?
-
您正在遍历字典的键。
-
你想发送多个对象...你打算怎么做?将它们放入列表中是有意义的,并且您的脚本是为处理列表而构建的。因此,在我看来,问题在于您通过邮递员发送的测试数据。只需将其放入列表中,一切正常。您的问题是错误的测试数据。
-
谢谢,确实,在邮递员中将已发布的 json 放入 [] 时确实可以工作,我只是在寻找一种方法使代码更具容错性并能够处理单个和多个对象。