2016-01-21 33 views
-1

你能帮我一下,我可以如何使用格式将列表“some”传递给字符串“json_req”?Python使用格式将列表传递到字符串

some = ["3874933","38423894"] 
json_req='{"marketIds" : {},"priceProjection" : {"priceData" : ["EX_BEST_OFFERS"]}}'.format(some) 

结果应该是:

'{"marketIds" : ["3874933","38423894"],"priceProjection" : {"priceData" : ["EX_BEST_OFFERS"]}}' 

目前,我收到一个错误:

KeyError: '"marketIds" ' 

感谢

+0

当我尝试打印它时,我得到KeyError:''marketIds'' –

+0

您的密钥与JSON数据不匹配,它包含文字引号和空白。 – jonrsharpe

+0

@ArthurZangiev,展示你如何试图打印它,让我们先纠正那部分。 – tglaria

回答

2

如果您正在使用格式化字符串牙套format()您需要使用双大括号将它们转义出来:

json_req='{{"marketIds" : {},"priceProjection" : {{"priceData" : ["EX_BEST_OFFERS"]}}}}'.format(some) 

这就是说,这种生成json的整个方法让我有点不安。感觉你最好使用带有本地python对象的json模块,最后使用dumps

import json 
some = ["3874933","38423894"] 
template = {"marketIds" : some, "priceProjection" : {"priceData" : ["EX_BEST_OFFERS"]}} 
json_req = json.dumps(template) 

如果您以后需要更改内容,会导致更灵活的代码。

+0

谢谢。你说得对,json方法好得多。再次感谢:) –

+0

@ArthurZangiev - 没问题,如果这种解决方案为你工作,请将其标记为可接受的解决方案。 – LexyStardust

相关问题