溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python如何實(shí)現(xiàn)提取str字符串/json中多級目錄下的某個(gè)值

發(fā)布時(shí)間:2021-03-23 12:34:52 來源:億速云 閱讀:419 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下python如何實(shí)現(xiàn)提取str字符串/json中多級目錄下的某個(gè)值,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

字符串多級目錄取值:

比如說:

你response接收到的數(shù)據(jù)是這樣的。

你現(xiàn)在只需要取到itemstring 這個(gè)字段下的值。其他的都不要!

python如何實(shí)現(xiàn)提取str字符串/json中多級目錄下的某個(gè)值

思路就是:字符串是個(gè)json格式(或轉(zhuǎn)為json格式),然后str轉(zhuǎn)為字典dict,然后循環(huán)遍歷按照key來取值。

你的data是個(gè)字典 然后item_list是data的Key ,item_list是個(gè)數(shù)組,這個(gè)里面的數(shù)組中的每個(gè)元素都是一個(gè)字典。

因此就是dict多級路徑按key取值。

# 多級目錄提取-dict
print(type(response))
print(type(response.text))
result = json.loads(resp.text) # 字符串轉(zhuǎn)字典
print(type(result))
for i in result["data"]["item_list"]:
 print(i["itemstring"])

結(jié)果》》》
<class 'requests.models.Response'>
<class 'str'>
<class 'dict'>
提取的值。。。。。。出現(xiàn)

最后獲取出來的是:

所有itemstring字段的值:(遍歷出來的)

python如何實(shí)現(xiàn)提取str字符串/json中多級目錄下的某個(gè)值

看得懂的就是需要的。這是我調(diào)用騰訊API,然后出現(xiàn)返回值是一個(gè)含有N個(gè)字段的json數(shù)據(jù),最后我提取出來OCR識別的部分。其他的沒有要。

補(bǔ)充拓展:按照J(rèn)son的層級提取各個(gè)字段的實(shí)例

如下所示:

 String s = "{\"error\":0,\"status\":\"success\",\"results\":[{\"currentCity\":\"青島\",\"index\":[{\"title\":\"穿衣\",\"zs\":\"較冷\",\"tipt\":\"穿衣指數(shù)\",\"des\":\"建議著厚外套加毛衣等服裝。年老體弱者宜著大衣、呢外套加羊毛衫。\"},{\"title\":\"紫外線強(qiáng)度\",\"zs\":\"最弱\",\"tipt\":\"紫外線強(qiáng)度指數(shù)\",\"des\":\"屬弱紫外線輻射天氣,無需特別防護(hù)。若長期在戶外,建議涂擦SPF在8-12之間的防曬護(hù)膚品。\"}],}]}";

 JSONObject jsonObject = JSON.parseObject(s);

 //提取出error為 0
 int error = (int) jsonObject.get("error");
 System.out.println("error:" + error);

 //提取出status為 success
 String status = jsonObject.getString("status");
 System.out.println("status:" + status);

 //注意:results中的內(nèi)容帶有中括號[],所以要轉(zhuǎn)化為JSONArray類型的對象
 JSONArray result = jsonObject.getJSONArray("results");

 for (int i = 0; i < result.size(); i++) {
  //提取出currentCity為 青島
  String currentCity = result.getJSONObject(i).getString("currentCity");
  System.out.println("currentCity:" + currentCity);

  //注意:index中的內(nèi)容帶有中括號[],所以要轉(zhuǎn)化為JSONArray類型的對象
  JSONArray index = result.getJSONObject(i).getJSONArray("index");

  for (int j = 0; j < index.size(); j++) {
  String title = index.getJSONObject(j).getString("title");
  System.out.println("title:" + title);
  String zs = index.getJSONObject(j).getString("zs");
  System.out.println("zs:" + zs);
  String tipt = index.getJSONObject(j).getString("tipt");
  System.out.println("tipt:" + tipt);
  String des = index.getJSONObject(j).getString("des");
  System.out.println("des:" + des);

  }
 }
 }

以上是“python如何實(shí)現(xiàn)提取str字符串/json中多級目錄下的某個(gè)值”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI