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 的示例代码。

