2013-04-09 115 views
0

我在理解json字典和數組時遇到了一些麻煩。我有一個腳本是從網站上抓取信息。Python json字典到數組

models.txt只是一個型號的列表,如

30373 
30374 
30375 

和json_descriptions.txt是我想

sku 
price 
listprice 
issoldout 

的代碼鍵的列表:

import urllib 
import re 
import json 

modelslist = open("models.txt").read() 
modelslist = modelslist.split("\n") 
descriptionlist = open("json_descriptions.txt").read() 
descriptionlist = descriptionlist.split("\n") 

for model in modelslist: 
    htmltext = urllib.urlopen("http://dx.com/p/GetProductInfoRealTime?skus="+model) 
    htmltext = json.load(htmltext) 
    if htmltext['success'] == True: 
     def get_data(dict_index, key): 
      return htmltext[u"data"][dict_index][key] 
     for description in descriptionlist: 
      info = description, (get_data(0,description)) 
      print info 
    else: 
     print "product does not exist" 

如果我打印出我得到的信息:

sku 30373 
price 9.10 
listprice 17.62 
issoldout False 

這樣就意味着信息[0]是:

sku 
price 
listprice 
issoldout 

和信息[1]是:

30373 
9.10 
17.62 
False 

我想知道,如果有,我能有這樣的一種方式: 環1 = ['sku','30373','price','4.90','listprice','0','issoldout','False'] 環2 = ['sku','30374','price','10.50','listprice','0','issoldout','False']

info[0] = skuinfo[1] = 30373info[2] = priceinfo[3] = 4.90info[4] = listpriceinfo[5] = 0info[6] = issoldoutinfo[7] = False然後用下一個循環的新列表重複該操作。

我一直在使用info = json.dumps(info)嘗試,但只是給info[0] = [[[[info[1] = """"info[2] = spli

+0

你確定這是一個數組而不是字典嗎?你使用它的方式表明後者。 – sapi 2013-04-09 02:58:31

+0

是啊,我的錯......還在學習,我會編輯它。 – Travis 2013-04-09 03:03:13

回答

1

喜歡這個?

info = [] 
for model in modelslist: 
    htmltext = urllib.urlopen("http://dx.com/p/GetProductInfoRealTime?skus="+model) 
    htmltext = json.load(htmltext) 
    if htmltext['success'] == True: 
     def get_data(dict_index, key): 
      return htmltext[u"data"][dict_index][key] 
     for description in descriptionlist: 
      info.append(description) 
      info.append(get_data(0,description)) 
print info