1. 程式人生 > 程式設計 >python實現提取str字串/json中多級目錄下的某個值

python實現提取str字串/json中多級目錄下的某個值

字串多級目錄取值:

比如說:

你response接收到的資料是這樣的。

你現在只需要取到itemstring 這個欄位下的值。其他的都不要!

python實現提取str字串/json中多級目錄下的某個值

思路就是:字串是個json格式(或轉為json格式),然後str轉為字典dict,然後迴圈遍歷按照key來取值。

你的data是個字典 然後item_list是data的Key ,item_list是個陣列,這個裡面的陣列中的每個元素都是一個字典。

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

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

結果》》》
<class 'requests.models.Response'>
<class 'str'>
<class 'dict'>
提取的值。。。。。。出現

最後獲取出來的是:

所有itemstring欄位的值:(遍歷出來的)

python實現提取str字串/json中多級目錄下的某個值

看得懂的就是需要的。這是我呼叫騰訊API,然後出現返回值是一個含有N個欄位的json資料,最後我提取出來OCR識別的部分。其他的沒有要。

補充拓展:按照Json的層級提取各個欄位的例項

如下所示:

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

 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中的內容帶有中括號[],所以要轉化為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中的內容帶有中括號[],所以要轉化為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實現提取str字串/json中多級目錄下的某個值就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。