2017-03-09 150 views
0

我的數據文件夾中有很多亞馬遜產品信息,評分,評論等json文件。每個json文件都包含有關特定亞馬遜產品的信息。我被困在我的項目的第一步:加載數據。 我想: JSON模塊:json.loads(...)如何閱讀這些json文件

JSONDecodeError: Expecting value: line 1 column 1 (char 0) 

然後我想: 大熊貓JSON讀者:pd.read_json(...)

ValueError: Mixing dicts with non-Series may lead to ambiguous ordering. 

任何煩請幫助我。非常感謝!

下面是該文件的內容之一:

{ 「點評」:[], 「ProductInfo」:{ 「價格」: 「$ 1,039.95」, 「功能」:「KIT包括15個產品 - 所有品牌所有制造商提供的配件的新項目+全美國保修:\ n < 1>尼康D5200數碼單反相機& 18-55mm G VR DX AF-S變焦鏡頭(紅色)+ < 2>尼康55-200mm VR DX AF- S Lens + < 3>三陽500mm遠攝鏡頭+ \ n < 4>創見32GB Class10 SD卡+ < 5> Vivitar 52mm UV玻璃過濾器+ < 6>其他Vivitar 52mm UV玻璃過濾器+ < 7> ML-L3快門遙控器+ \ n < 8> Rokinon 67 \」腳架&案例+ < 9> PD筆記本/平板DSLR揹包+ < 10> PD 2.5倍遠攝& .45x廣角鏡頭+ < 11> PD 6PC完成清潔套裝+ \ n < 12> PD記憶卡存儲電子錢包+ < 13>液晶顯示器屏幕保護膜+ < 14>尼康T型支架+ < 15> T型支架說明書「,」名稱「:」尼康D5200數碼單反相機& 18-55mm G VR DX AF-S變焦鏡頭(紅色)55-200mm VR + 500mm長焦鏡頭+ 32GB卡片+揹包+長焦鏡頭+獨腳架+附件套件「,」ImgURL「:」http://ecx.images-amazon.com/images/I/61wRao9FbdL.SY300.jpg「,」ProductID「:」B00B4EKX8A「}}%

+0

爲什麼最後有%符號? – oshaiken

+0

我不知道。這些是我得到的文件。 @oshaiken – zesla

+0

顯示您的完整確切代碼。 –

回答

0
import json 
with open('data.json') as data_file: 
    data_string = data_file.read()  
    try: 
     data = json.loads(data_string) 
     print('Success!') 
    except ValueError: 
     print('Failed:') 
     print(repr(data_string))   

如果失敗

+0

非常感謝。有用。 – zesla

0
您是否試過

import requests 
import json 
r = requests.get(url, timeout=1000) 
data = json.loads(r.text) 
+0

爲什麼我需要請求?我的JSON文件是本地的,而不是從url ... – zesla

0

如果你的JSON在文件中,那麼你所要做的就是加載它,然後從中讀取正確的密鑰。

import json 
with open('data.json') as data_file:  
    data = json.load(data_file) 

,那麼你應該能夠訪問像

data["productInfor"]["Price"]

還不能確定鍵爲什麼你的JSON具有在其末端有一個%,但它不應該,因爲這是一個不正確的格式並且您將無法在沒有錯誤的情況下加載它。

嘗試在文件末尾沒有%的情況下運行。從輸入JSON

0

移除%的跡象,顯示我們的輸出。