2015-10-16 115 views
2

我目前正在訪問OldSchool RuneScape的API,它以JSON的形式返回字符串,但不適用於我。Python3 - JSON錯誤

我當前的代碼:

import json 
import urllib.request 

name = input('OSRS name? ') 
url = 'http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player={0}'.format(name) 

open_url = urllib.request.urlopen(url) 
read_url = open_url.read().decode() 
format_to_string = str(read_url) 

j = json.loads(format_to_string) 
print(j) 

但如果我嘗試例如姓名itz_craft,我得到一個錯誤。

OSRS name? itz_craft 
Traceback (most recent call last): 
File "/home/pi/Programming/Python3/RuneScape/json_test.py", line 11, in <module> 
j = json.loads(format_to_string) 
File "/usr/lib/python3.4/json/__init__.py", line 318, in loads 
return _default_decoder.decode(s) 
File "/usr/lib/python3.4/json/decoder.py", line 346, in decode 
raise ValueError(errmsg("Extra data", s, end, len(s))) 
ValueError: Extra data: line 1 column 7 - line 28 column 1 (char 6 - 315) 

我希望有人可以幫我解決這個問題,所以我能避免問題後使用JSON,因爲我要利用這個這麼多。

無論如何,謝謝!

+0

你確定API正在返回JSON嗎?我在瀏覽器中訪問了該網址,該網頁是text/html。有一個'format'參數可以指定'JSON'嗎? – Monkpit

回答

0

的在RuneScape HiScores API documentation說,返回的值是:

一個換行符分隔的CSV

的字符串

所以你不能分析它的JSON,因爲它不是。

+0

我如何使用CSV來做到這一點? – Zhendos

+0

Python在標準庫中有一個CSV解析器,請查看[官方文檔](https://docs.python.org/2/library/csv.html)或[本教程](https: //pymotw.com/2/csv/)。如果您有關於CSV模塊的其他問題,您應該提出一個單獨的問題。 – Monkpit

+0

如果我幫助過你或指出你的方向正確,請考慮將此標記爲已接受的答案。 – Monkpit