-4

这是我正在尝试做的事情:

假设已经给了我一个数据集:

dictionary = {'products': [{'a': '1', 'b': '2', 'c': '3', 'd': '4', [...]}

我可以按如下方式在字典中获取数值:dictionary['products'][0]['style]

我正在尝试将“产品”存储在一个变量中,并将第二个键(a、b、c、d 等)存储在另一个变量中。

x = (dictionary.keys())
x = "'"+x[0]+"'"
keys = dictionary['products'][0].keys()

我的最终目标是这样的:

for i in xrange(number_of_products - 1):
    for j in xrange(len(keys) - 1):
        values[i][j] = dictionary[x][i][keys[j]] ##ERROR Here when I try to index using key[j]
4

5 回答 5

3

repr()会将字符串转换为其引用的表示形式。

x = 'products'
print repr(x)

这将正确处理x包含单引号。

于 2013-05-19T19:14:47.363 回答
0

有效的代码版本如下所示:

for i in range(len(dictionary['products'])):
    for j in dictionary['products'][i]:
        values[i][j] = dictionary['products'][i][j]

然而,一个较短的版本是:

values = dictionary['products']
于 2013-05-19T20:16:01.430 回答
0

怎么样?

>>> x = '\''+x+'\''
>>> print x
'products'

相似地,

>>> x = "'"+x+"'"
>>> print x
'products'
于 2013-05-19T19:13:12.160 回答
0

尝试:

In [4]: x = "products"

In [5]: print "'%s'" % x
'products'
于 2013-05-19T19:13:38.900 回答
0

您可以使用三引号,不必使用转义字符.. 一组三引号内的任何内容都被视为字符串

>>> x="""'products'"""
>>> print x
'products'
于 2013-05-19T19:21:00.647 回答