2017-03-03 78 views
-1

花了整整一天的時間試圖解決我的問題後,我來找你尋求一些幫助......我目前正在用scrapy構建一個web scrawler,但是我不能正確導入我的json文件。在scrapy中的Json響應中爬行

的JSON的結構如下:

{ 
    "Response": "Success", 
    "Type": 100, 
    "Aggregated": false, 
    "Data": [ 
    { 
     "time": 1452643200, 
     "close": 1.21, 
     "high": 1.21, 
     "low": 1.21, 
     "open": 1.21, 
     "volumefrom": 0, 
     "volumeto": 0 
    }, 
    { 
     "time": 1452646800, 
     "close": 1.21, 
     "high": 1.21, 
     "low": 1.21, 
     "open": 1.21, 
     "volumefrom": 0, 
     "volumeto": 0 
     } 
    ], 
    "TimeTo": 1452679200, 
    "TimeFrom": 1452643200, 
    "FirstValueInArray": true, 
    "ConversionType": "direct" 
} 

每當我打電話:

 json_string = response.body_as_unicode() 
    for Data in json_string: 
     for close in Data: 
      print close 

我遇到兩個不同的問題:

  • 我不能檢索項目從內「數據」,因爲它似乎是一個字符串,我不能輸入任何參數。
  • 打印功能垂直打印所有返回的數據。

我的願望是檢索數據,然後可以說,當(例如)「高」= 0時,爬行器必須停止。

感謝您的幫助,如果我在某個地方不太清楚,請提前幫忙。

M.

回答

0

您需要首先分析字符串:

import json 

d = json.loads(json_string) 
for rec in d['Data']: 
    if rec['high'] == 0: 
     break 
    print(rec['close']) 
+0

哇,這顯然奏效了!非常感謝你的幫助。 –