Python json.dumps有字符串插值吗?

时间:2013-12-07 05:30:18

标签: python json

编辑:好的,我现在很尴尬。答案很简单

假设我想在结构后面创建一个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]}

也就是说,不再是一个字典(但是一个带有字典结构的字符串)

我如何解决这个简单的问题?

2 个答案:

答案 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)

我发现这很简单。