簡體   English   中英

如何在Python中操作json文件

[英]How to manipulate json file in Python

我想從這里提取數據: http : //www.carqueryapi.com/api/0.3/?callback=?&cmd=getMakes

到目前為止,這是我的python腳本:

import urllib.request
import json
url =("http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getMakes")
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
result = response.read().decode('utf-8')
print (result)

當我嘗試操縱結果時,從以下內容開始:

d = json.loads(result)

我收到一條錯誤消息:“ ValueError:無法解碼JSON對象”

我究竟做錯了什么?

您的網址/查詢有誤; 您沒有從服務器獲得有效的JSON回復; 它開始像這樣:

?({"Makes":[{"make_id":"abarth","make_display":"Abarth","make_is_common":"0","make_country":"Italy"},

如果您像這樣修改網址:

url = ("http://www.carqueryapi.com/api/0.3/?cmd=getMakes")

它應該工作。 至少在那之后對我有用。

顯然, callback=? 意味着客戶端可以插入通過json傳遞的回調方法。 即,您可以讓服務器生成可執行的JavaScript,而不僅僅是json。

如果我單擊您的URL,則正文中的第一個字符為“?(”。這破壞了您將其輸入JSON的嘗試。您將需要對數據進行預處理以去除垃圾。最后還有垃圾。

順便說一下,使用Python請求庫而不是urllib可以省去您的麻煩!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM