【问题标题】:Python str() double quoted stringPython str() 双引号字符串
【发布时间】:2015-10-11 18:55:40
【问题描述】:

我知道这个问题听起来很幼稚,但我坚持下去。我正在使用 jquery 自动完成功能,结果它需要 ["data1", "data2"] 形式的列表。

我正在从一个 json 文件中获取数据,并且

data = json.load(fobj)['content']
data = [str(data[d]['name']) for d in data.keys()]

['一些文本','一些其他'....]

但我特别想要列表中的双引号字符串。我试过 repr(str(data)) 但它给出了 "'some text'" 然后是 "'some text'".strip("'") 但这又返回了一个带引号的字符串。

为了完成我正在做的工作

data = [str(data[d]['name'] + "'") for d in data.keys()]

稍后处理字符串末尾的“'”,但这不是正确的方法。

有什么方法可以强制 str() 返回双引号字符串,例如 str(data, quote='"')。

【问题讨论】:

  • 感谢您的编辑建议。几个月前我没有发帖,我忘记了格式规则。

标签: python string python-3.x


【解决方案1】:

jQuery 表示 JavaScript。 JavaScript 字面量表示 JSON。只需重新编码即可。

>>> json.dumps(['foo', '''bar'''])
'["foo", "bar"]'

【讨论】:

  • 哦!我在这个上浪费了 30 多分钟。谢谢
【解决方案2】:

在 Python 中,单引号或双引号字符串是相同的。例如:

a = 'some text'
b = "some text"

在 Python 中同时使用两者的原因是因为您可能有:

a2 = 'He said: "Hello!"'
b2 = "It's OK!"

三引号也用于:

a3 = """some text"""
b3 = '''some text'''

如果您尝试在某处(在文件中)打印双引号字符串列表,您可以这样做:

lst = ['text 1', 'text 2']
print "[%s]" % ", ".join(map(lambda e: '"%s"' % e, lst))

输出:

["text 1", "text 2"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2014-09-20
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多