我知道这个问题听起来很天真,但我坚持不懈。我正在使用jquery自动完成,事实证明它需要[“data1”,“data2”]形式的列表。
我从json文件和
获取数据data = json.load(fobj)['content']
data = [str(data[d]['name']) for d in data.keys()]
['some text','some other'....]
但我特别想要列表中的双引号字符串。我尝试过repr(str(data)),但在其中给出“'some text'”然后“'some text'”。strip(“'”)但是这又返回一个带引号的字符串。
为了完成我正在做的工作
data = [str(data[d]['name'] + "'") for d in data.keys()]
然后在字符串末尾处理“'”,但这不是正确的方法。
有什么方法可以强制str()返回双引号字符串,如str(data,quote ='“')。
答案 0 :(得分:4)
jQuery意味着JavaScript。 JavaScript文字意味着JSON。只需重新编码。
>>> json.dumps(['foo', '''bar'''])
'["foo", "bar"]'
答案 1 :(得分:1)
在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"]