编辑:好的,我现在很尴尬。答案很简单
假设我想在结构后面创建一个json对象:
{"favorite_food":["icecream","hamburguers"]}
在python中这样做,如果我事先知道整个字符串,我可以这样做:
json.dumps({"favorite_food":["icecream","hamburguers"]})
工作正常。
我的问题是,如果我想通过字符串插值获取对象,我将如何做同样的事情?例如:
favorite food = 'pizza'
json.dumps({"favorite_food":[%s]}) %favorite_food
我发现的问题是,如果我在调用json.dumps
之前进行插值:
dict= '{"favorite_food":[%s]}' % favorite_food
如果我然后执行json.dumps(dict)
,由于字符串引用,json_dumps返回:
{"favorite_food":[pizza]}
也就是说,不再是一个字典(但是一个带有字典结构的字符串)
我如何解决这个简单的问题?
答案 0 :(得分:5)
为什么不呢:
>>> food = "pizza"
>>> json.dumps({"favorite_food":[food]})
'{"favorite_food": ["pizza"]}'
json,dumps
将实际值作为输入 - 即实际的dicts,列表,整数和字符串。如果你想把你的字符串值放在dict中,只需将其放入。你不想放入它的字符串表示,你想要放入实际值并让json.dumps
进行字符串表示
答案 1 :(得分:1)
下面怎么样:
favorite_food = 'pizza'
my_dict = {"favorite_food":[favorite_food]}
print json.dumps(my_dict)
我发现这很简单。