JSON格式Python,Java,PHP等封装图片识别商品数据API方法
发布人:shili8
发布时间:2025-03-13 14:29
阅读次数:0
**商品数据API**
本文将介绍如何使用 JSON 格式的 Python、Java 和 PHP 等语言封装图片识别商品数据 API。
### **Python 实现**
首先,我们需要在 Python 中安装必要的库,包括 `requests` 和 `json`。我们还需要一个用于图片识别的第三方库,如 `easyocr`。
# requirements.txtrequests==2.25.1json==2.0.5easyocr==0.4.0# main.pyimport requestsimport jsonfrom easyocr import Reader, ImageProcessorclass GoodsAPI: def __init__(self): self.api_key = "YOUR_API_KEY" self.base_url = " /> def recognize_goods(self, image_path): # 使用easyocr进行图片识别 reader = Reader(['en']) result = reader.readtext(image_path) # 将识别结果转换为JSON格式 data = { 'goods_name': result[0]['text'], 'confidence': result[0]['confidence'] } return json.dumps(data) def get_goods_info(self, goods_id): url = f"{self.base_url}/goods/{goods_id}" headers = {"Authorization": f"Bearer {self.api_key}"} response = requests.get(url, headers=headers) if response.status_code ==200: return json.loads(response.content) else: return None# 使用示例api = GoodsAPI() image_path = "path/to/image.jpg" goods_id =12345result = api.recognize_goods(image_path) print(result) goods_info = api.get_goods_info(goods_id) print(goods_info)
### **Java 实现**
在 Java 中,我们需要使用 `OkHttp` 库来发送 HTTP 请求,并使用 `Jackson` 库来将 JSON 数据转换为 Java 对象。
java// build.gradledependencies { implementation 'com.squareup.ok /> implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3' } // GoodsAPI.javaimport ok />import ok />import ok /> import com.fasterxml.jackson.databind.ObjectMapper; public class GoodsAPI { private static final String API_KEY = "YOUR_API_KEY"; private static final String BASE_URL = " /> public String recognizeGoods(String imagePath) throws Exception { // 使用easyocr进行图片识别 EasyOCR easyOCR = new EasyOCR(); Result result = easyOCR.recognize(imagePath); // 将识别结果转换为JSON格式 ObjectMapper mapper = new ObjectMapper(); JsonNode data = mapper.valueToTree(result); return mapper.writeValueAsString(data); } public GoodsInfo getGoodsInfo(int goodsId) throws Exception { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(BASE_URL + "/goods/" + goodsId) .header("Authorization", "Bearer " + API_KEY) .build(); Response response = client.newCall(request).execute(); if (response.isSuccessful()) { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(response.body().string(), GoodsInfo.class); } else { return null; } } // 使用示例GoodsAPI api = new GoodsAPI(); String imagePath = "path/to/image.jpg"; int goodsId =12345; try { String result = api.recognizeGoods(imagePath); System.out.println(result); GoodsInfo goodsInfo = api.getGoodsInfo(goodsId); System.out.println(goodsInfo); } catch (Exception e) { e.printStackTrace(); }
### **PHP 实现**
在 PHP 中,我们需要使用 `curl` 库来发送 HTTP 请求,并使用 `json_decode` 函数将 JSON 数据转换为 PHP 对象。
php// GoodsAPI.phpclass GoodsAPI { private $apiKey; private $baseUrl; public function __construct() { $this->apiKey = "YOUR_API_KEY"; $this->baseUrl = " /> } public function recognizeGoods($imagePath) { // 使用easyocr进行图片识别 $easyOCR = new EasyOCR(); $result = $easyOCR->recognize($imagePath); // 将识别结果转换为JSON格式 $data = json_encode([ 'goods_name' => $result[0]['text'], 'confidence' => $result[0]['confidence'] ]); return $data; } public function getGoodsInfo($goodsId) { $url = $this->baseUrl . "/goods/" . $goodsId; $headers = ["Authorization: Bearer " . $this->apiKey]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); if (curl_errno($ch)) { return null; } curl_close($ch); if ($response !== false) { return json_decode($response, true); } else { return null; } } // 使用示例$api = new GoodsAPI(); $imagePath = "path/to/image.jpg"; $goodsId =12345; $result = $api->recognizeGoods($imagePath); echo $result . " "; $goodsInfo = $api->getGoodsInfo($goodsId); print_r($goodsInfo);
以上是使用 JSON 格式的 Python、Java 和 PHP 等语言封装图片识别商品数据 API 的示例代码。