0

我有一个简单的抓取代码:

import urllib
import re
import json

htmltext = urllib.urlopen("http://dx.com/p/GetProductInfoRealTime?skus=48616")

htmltext = json.load(htmltext)

print htmltext

它输出:

{u'data': [{u'sku': 48616, u'isShowDiscount': False, u'currencycode': u'USD', u'issoldout': False, u'adddate': u'10/28/2010', u'discount': 0, u'currencysymbol': u'US$', u'price': u'4.20', u'listprice': u''}], u'success': True}

我不知道如何以正确的格式获取数据,因此我可以使用冒号左侧的术语作为右侧术语的键。

我想

print htmltext["sku"] 
48616

或者

print htmltext["price"]
4.20

对此有什么想法吗?

4

2 回答 2

4

你有一本带钥匙的字典data

所以访问内部列表:

htmltext[u"data"]

然后要访问"sku",您需要访问列表中的字典 in"data"的值。

inner_dict = htmltext[u"data"][0]

print(inner_dict[u"sku"])

您可以定义一个函数,例如:

def get_data(dict_index, key):
        return htmltext[u"data"][dict_index][key]

print(get_data(0, u"sku"))
于 2013-04-09T00:36:54.243 回答
0

你也可以这样做:

def get_data(htmltext, sub_key, key='data', indx=0):
    return htmltext[key][indx][sub_key]

print get_data(htmltext, 'sku')

检查默认参数的使用。

干杯!

于 2013-04-09T04:16:21.900 回答