【问题标题】:Python use format to pass list into stringPython使用格式将列表传递给字符串
【发布时间】:2016-01-21 13:30:05
【问题描述】:

你能帮我如何使用格式将列表“some”传递到字符串“json_req”吗?

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

结果应该是:

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

目前我收到一个错误:

KeyError: '"marketIds" '

谢谢

【问题讨论】:

  • 当我尝试打印它时,我得到 KeyError: '"marketIds" '
  • 您的密钥与 JSON 数据不匹配,它包含文字引号和空格。
  • @ArthurZangiev,展示你是如何尝试打印它的,让我们先更正那个部分。
  • 他在格式化第二行的字符串时遇到了 KeyError。格式错误的格式字符串 - 不转义大括号。

标签: python string python-2.7


【解决方案1】:

如果您在使用format() 格式化的字符串中有大括号,则需要使用双大括号对其进行转义:

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

话虽如此,生成 json 的整个方法让我有点不安。感觉最好将 json 模块与本机 python 对象一起使用,最后使用dumps

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

如果您以后需要更改内容,这将带来更灵活的代码。

【讨论】:

  • 谢谢。你是对的,json 方法要好得多。再次感谢:)
  • @ArthurZangiev - 没问题,如果此解决方案适合您,请将其标记为已接受的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
  • 1970-01-01
  • 2014-04-13
  • 2018-02-07
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多