{ "msg": "操作成功", "code": 200, "data": { "drawResult": [ { "orderNo": "a372be1a93014ac28c060b2dd505ebe3", "resultDesc": "申请成功" } ], "paymentPatchNo": "P1685530998787" } } 怎么拿到orderNo
时间: 2023-09-03 20:11:38 浏览: 196
要拿到 "orderNo",可以使用以下代码:
```
import json
response = '{ "msg": "操作成功", "code": 200, "data": { "drawResult": [ { "orderNo": "a372be1a93014ac28c060b2dd505ebe3", "resultDesc": "申请成功" } ], "paymentPatchNo": "P1685530998787" } }'
data = json.loads(response)
order_no = data['data']['drawResult'][0]['orderNo']
print(order_no)
```
解释一下这段代码:
- 首先,我们导入了 `json` 模块,用于解析 JSON 格式的数据。
- 接着,我们定义了一个字符串 `response`,其中包含了我们需要解析的 JSON 数据。
- 然后,我们使用 `json.loads()` 方法将 JSON 数据转换成 Python 字典类型的数据,存储在变量 `data` 中。
- 最后,我们使用 `data['data']['drawResult'][0]['orderNo']` 的方式获取到了 `orderNo` 的值,并将其存储在变量 `order_no` 中,最后将其打印出来。
注意,这里假设我们要获取的 `orderNo` 是 `drawResult` 列表中的第一个元素,如果列表中有多个元素,你可能需要进行循环来依次获取每个元素的 `orderNo`。
相关问题
json格式化:{"params":{"orderNo":"1678657097767124993","appOrderNo":"ME20230711144618121194","afterSaleType":2,"totalAmount":6600,"refundAmount":6600,"appRefundNo":"d4b0pjkt7o","refundApplyTime":"2023-07-11 15:10:41"},"result":{"msg":"\u8ba2\u5355\u9a73\u56de\u7533\u8bf7","code":500}}
你可以使用Python的json模块来格式化一个JSON字符串。下面是一个示例代码:
```python
import json
json_str = '{"params":{"orderNo":"1678657097767124993","appOrderNo":"ME20230711144618121194","afterSaleType":2,"totalAmount":6600,"refundAmount":6600,"appRefundNo":"d4b0pjkt7o","refundApplyTime":"2023-07-11 15:10:41"},"result":{"msg":"\u8ba2\u5355\u9a73\u56de\u7533\u8bf7","code":500}}'
formatted_json = json.dumps(json.loads(json_str), indent=4, ensure_ascii=False)
print(formatted_json)
```
这段代码会将给定的JSON字符串解析成Python对象,然后使用`json.dumps()`函数以缩进的形式重新序列化为格式化的JSON字符串。`indent`参数用于指定缩进的空格数量,`ensure_ascii`参数用于确保非ASCII字符以原样输出。
运行以上代码,你将获得一个格式化后的JSON字符串:
```json
{
"params": {
"orderNo": "1678657097767124993",
"appOrderNo": "ME20230711144618121194",
"afterSaleType": 2,
"totalAmount": 6600,
"refundAmount": 6600,
"appRefundNo": "d4b0pjkt7o",
"refundApplyTime": "2023-07-11 15:10:41"
},
"result": {
"msg": "订单驳回申请",
"code": 500
}
}
```
这样,你就得到了一个可读性更好的JSON格式。
func PostOperateOrderList(a *decorator.ApiBase, data *adminStruct.OperateOrderRequest) error { logger.AccessLogger.Info("PostOperateOrderList...") resp := adminStruct.OperateOrderListResponse{} resp.ResponseCommon = a.NewSuccessResponseCommon() logger.AccessLogger.Info("权限:", a.Token.Uids) // 查询数据 resQuery := a.Ts.Table("business_order_info as a "). Joins("inner join business_base as b on b.bid=a.bid"). Not("a.status=?", model.Delete) if len(data.Status) > 0 { resQuery = resQuery.Where(" a.status in ?", data.Status) } if data.BeginDate > 0 { resQuery = resQuery.Where(" a.order_time>=?", data.BeginDate) } if data.EndDate > 0 { resQuery = resQuery.Where(" a.order_time<=?", data.EndDate) } if data.Bid > 0 { resQuery = resQuery.Where(" a.bid=?", data.Bid) } if data.Sid > 0 { resQuery = resQuery.Where(" a.sid=?", data.Sid) } if len(data.Sname) > 0 { sup := admin_lib.SupplierBase{ Db: a.Ts, LikeName: data.Sname, } sids, _ := sup.QuerySupplierNameLikeSids() if len(sids) > 0 { resQuery = resQuery.Where(" a.sid in ?", sids) } } if data.Wid > 0 { resQuery = resQuery.Where(" a.wid=?", data.Wid) } if len(data.OrderNo) > 0 { resQuery = resQuery.Where(" a.order_no like ?", fmt.Sprintf("%%%s%%", data.OrderNo)) } if a.Token.Uids != nil && a.Token.User.Uid != 1 { resQuery = resQuery.Where("b.cuid in ?", *a.Token.Uids) } // 查询总条数 a.DbErrSkipRecordNotFound(resQuery. Count(&resp.Count). Error) if resp.Count > 0 { a.DbErrSkipRecordNotFound(resQuery. Select(`a.boid, a.bid, a.sid, a.wid, a.order_no, a.order_time, be.bname, se.sname, w.wname, a.sum_num, a.sum_amt, a.pay_amt, a.status, a.proc_status, a.warehouse_status, a.logistics_id`). Joins("inner join business_expand as be on be.bid=a.bid"). Joins("inner join supplier_expand as se on se.sid=a.sid"). Joins("inner join warehouse_info as w on w.wid=a.wid"). Order("a.boid desc"). Limit(a.Size). Offset(a.Offset). Find(&resp.Data). Error) //// 获取boid数组 //var boids []int64 //for _, tmp := range resp.Data { // boids = append(boids, tmp.Boid) //} } // 准备返回数据 return a.ReturnSuccessCustomResponse(resp) }
这段代码是一个名为 `PostOperateOrderList` 的函数,它接收两个参数:`a` 和 `data`。该函数的目的是查询并返回操作订单列表。
函数首先创建了一个名为 `resp` 的结构体变量,用于存储返回的数据。然后,打印了一条日志记录。
接下来,查询语句 `resQuery` 被创建。它是一个复杂的查询,涉及多个表之间的连接和条件过滤。查询的目标是从数据库中检索订单信息。
在创建查询语句时,根据 `data` 中的条件对查询进行了一系列的过滤。例如,根据订单状态、日期范围、商家ID、供应商ID等条件进行过滤。
最后,通过执行 `Count` 方法获取满足条件的总记录数,并将其存储在 `resp.Count` 变量中。
如果存在满足条件的记录,继续执行查询订单信息的代码。该查询会获取与订单相关的更多详细信息,并将其存储在 `resp.Data` 中。
最后,通过调用 `a.ReturnSuccessCustomResponse(resp)` 方法,将查询结果作为成功的自定义响应返回。
需要注意的是,代码中有一些部分被注释掉了,例如获取 `boid` 数组的部分。此外,在查询供应商信息时,调用了一个名为 `QuerySupplierNameLikeSids` 的函数,但该函数在代码中并未提供。
阅读全文