-4

これが私がやろうとしていることです:

すでに与えられているデータセットを考えてみましょう:

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

次のようにディクショナリの数値を取得できます: dictionary['products'][0]['style]

「製品」を変数に格納し、2 番目のキー (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 に答える