2011-03-30 40 views
0

的JSON語法定義說 HTML/XML標籤(如<script>...</script>部分)不是的 有效的JSON的一部分,看到http://json.org描述。 許多瀏覽器和工具默默地忽略了這些東西,但python確實不會。 我想要插入JavaScript代碼(谷歌分析)來獲取有關使用此服務的用戶的信息(地點,瀏覽器,操作系統...)。 你有什麼建議? 我應該解決[瀏覽器輸出] [^ 1]或[python腳本] [^ 2]上的問題? 感謝,的JSON語法VS HTML/XML標籤

安東尼奧

[^ 1]:瀏覽器輸出

<script>...</script> 
[{"key": "value"}] 

[^ 2]:Python腳本

#!/usr/bin/env python 
import urllib2, urllib, json 
url="http://.........." 
params = {} 
url = url + '?' + urllib.urlencode(params, doseq=True) 
req = urllib2.Request(url) 
headers = {'Accept':'application/json;text/json'} 
for key, val in headers.items(): 
    req.add_header(key, val) 
data = urllib2.urlopen(req) 
print json.load(data) 
+0

讓我解決這個問題。你有一個返回JSON的Web服務,但你想跟蹤你的服務的用戶? – 2011-03-30 20:24:07

+2

呃,創建有效的json會是要走的路嗎?似乎很愚蠢的是編寫一個完整的解析腳本來試圖從(x)html輸出中擺脫它,這可能會導致很多不同的錯誤。然而,我並不完全確定你的意思是'瀏覽器輸出'(我的瀏覽器輸出是在我的屏幕上的圖像,或HTTP請求,這取決於我在哪邊...... – Wrikken 2011-03-30 20:26:48

+0

你不能把腳本里面的JSON,它不是HTML,你期望發生什麼? – 2011-03-30 21:09:18

回答

0

這些聲如兩種不同的services--一個是面向用戶的一些數據的Web視圖,包括可視化,格式化等,另一個是面向機器的數據服務。我會保持這些獨立的,也許建立用戶視圖作爲數據服務的擴展。

+0

是的,我有一個返回JSON的Web服務,但我想跟蹤我的服務的用戶,同時,使用Python腳本的用戶讓JSON數據抱怨JSON語法,我想從我的服務中解決這個問題,有可能嗎? – antonjs 2011-03-30 21:29:56

+0

爲什麼你不能只跟蹤服務器端的用戶呢?它真的沒有意義在JSON數據服務中嵌入任何非JSON數據 – jmans 2011-03-30 22:44:49

+0

追蹤服務器端的用戶是一個不錯的選擇,但我更喜歡利用谷歌分析腳本 – antonjs 2011-03-30 22:57:34