{"id":1593,"date":"2020-05-18T22:25:00","date_gmt":"2020-05-18T14:25:00","guid":{"rendered":"https:\/\/www.yumefx.com\/?p=1593"},"modified":"2021-03-02T19:15:32","modified_gmt":"2021-03-02T11:15:32","slug":"tqdm-%e6%96%b9%e4%be%bf%e7%9a%84python%e8%bf%9b%e5%ba%a6%e6%9d%a1","status":"publish","type":"post","link":"https:\/\/www.yumefx.com\/?p=1593","title":{"rendered":"Tqdm\u2014\u2014\u65b9\u4fbf\u7684python\u8fdb\u5ea6\u6761"},"content":{"rendered":"\n<h1 style=\"text-align: center;\">\u4ecb\u7ecd<\/h1>\n<p>\u6709\u65f6\u5019\u5728\u4f7f\u7528Python\u5904\u7406\u6bd4\u8f83\u8017\u65f6\u64cd\u4f5c\u7684\u65f6\u5019\uff0c\u4e3a\u4e86\u4fbf\u4e8e\u89c2\u5bdf\u5904\u7406\u8fdb\u5ea6\uff0c\u9700\u8981\u901a\u8fc7\u8fdb\u5ea6\u6761\u5c06\u5904\u7406\u60c5\u51b5\u8fdb\u884c\u53ef\u89c6\u5316\u5c55\u793a\uff0c\u4ee5\u4fbf\u6211\u4eec\u80fd\u591f\u53ca\u65f6\u4e86\u89e3\u60c5\u51b5\u3002<\/p>\n<p>Tqdm \u662f\u4e00\u4e2a\u5feb\u901f\uff0c\u53ef\u6269\u5c55\u7684Python\u8fdb\u5ea6\u6761\uff0c\u53ef\u4ee5\u5b9e\u65f6\u8f93\u51fa\u5904\u7406\u8fdb\u5ea6\u800c\u4e14<code>\u5360\u7528\u7684CPU\u8d44\u6e90\u975e\u5e38\u5c11<\/code>\uff0c\u652f\u6301<code>windows<\/code>\u3001<code>Linux<\/code>\u3001<code>mac<\/code>\u7b49\u7cfb\u7edf\uff0c\u652f\u6301<code>\u5faa\u73af\u5904\u7406<\/code>\u3001<code>\u591a\u8fdb\u7a0b<\/code>\u3001<code>\u9012\u5f52\u5904\u7406<\/code>\u3001\u8fd8\u53ef\u4ee5\u7ed3\u5408<code>linux<\/code>\u7684\u547d\u4ee4\u6765\u67e5\u770b\u5904\u7406\u8fdb\u5ea6\u3002<\/p>\n<p>\u4f7f\u7528pip\u5c31\u53ef\u4ee5\u5b89\u88c5\u3002<\/p>\n\n\n\n<pre>\n<span>pip install tqdm<\/span>\n<\/pre>\n\n\n\n<h1>\u00a0<\/h1>\n<h1 style=\"text-align: center;\">\u4f7f\u7528<\/h1>\n<h3>\u53ef\u4ee5\u8fed\u4ee3\u7684\u5bf9\u8c61<\/h3>\n\n\n\n<pre>\n<span>from tqdm import tqdm<\/span>\n<span>import time<\/span>\n<span> <\/span>\n<span>for i in tqdm(range(100)):<\/span>\n<span>    time.sleep(0.1)<\/span>\n<\/pre>\n\n\n\n<p>\u5728\u4f7f\u7528tqdm\u7684\u65f6\u5019\uff0c\u53ef\u4ee5\u5c06tqdm(range(100))\u66ff\u6362\u4e3atrange(100)\u3002<\/p>\n\n\n\n<pre>\n<span>from tqdm import tqdm,trange<\/span>\n<span>import time<\/span>\n<span> <\/span>\n<span>for i in trange(100):<\/span>\n<span>    time.sleep(0.1)<\/span>\n<\/pre>\n\n\n\n<p><img loading=\"lazy\" class=\"size-full wp-image-1594 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_01.gif\" alt=\"\" width=\"1111\" height=\"219\" \/><\/p>\n<h3>\u00a0<\/h3>\n<h3>\u89c2\u5bdf\u5904\u7406\u7684\u6570\u636e<\/h3>\n<p>\u901a\u8fc7tqdm\u63d0\u4f9b\u7684set_description\u65b9\u6cd5\u53ef\u4ee5\u5b9e\u65f6\u67e5\u770b\u6bcf\u6b21\u5904\u7406\u7684\u6570\u636e\u3002<\/p>\n\n\n\n<pre>\n<span>from tqdm import tqdm<\/span>\n<span>import time<\/span>\n<span><\/span>\n<span>pbar = tqdm([&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,&quot;d&quot;])<\/span>\n<span>for c in pbar:<\/span>\n<span>    time.sleep(1)<\/span>\n<span>    pbar.set_description(&quot;Processing %s&quot;%c)<\/span>\n<\/pre>\n\n\n\n<p><img loading=\"lazy\" class=\"size-full wp-image-1595 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_02.gif\" alt=\"\" width=\"1014\" height=\"202\" \/><\/p>\n<h3>\u00a0<\/h3>\n<h3>\u624b\u52a8\u8bbe\u7f6e\u5904\u7406\u7684\u8fdb\u5ea6<\/h3>\n<p>\u901a\u8fc7update\u65b9\u6cd5\u53ef\u4ee5\u63a7\u5236\u6bcf\u6b21\u8fdb\u5ea6\u6761\u66f4\u65b0\u7684\u8fdb\u5ea6<\/p>\n\n\n\n<pre>\n<span>from tqdm import tqdm<\/span>\n<span>import time<\/span>\n<span><\/span>\n<span>#total\u53c2\u6570\u8bbe\u7f6e\u8fdb\u5ea6\u6761\u7684\u603b\u957f\u5ea6<\/span>\n<span>with tqdm(total=100) as pbar:<\/span>\n<span>    for i in range(100):<\/span>\n<span>        time.sleep(0.05)<\/span>\n<span>        #\u6bcf\u6b21\u66f4\u65b0\u8fdb\u5ea6\u6761\u7684\u957f\u5ea6<\/span>\n<span>        pbar.update(1)<\/span>\n<\/pre>\n\n\n\n<p><img loading=\"lazy\" class=\"size-full wp-image-1596 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_03.gif\" alt=\"\" width=\"1045\" height=\"227\" \/><\/p>\n<p>\u9664\u4e86\u4f7f\u7528with\u4e4b\u5916\uff0c\u8fd8\u53ef\u4ee5\u4f7f\u7528\u53e6\u5916\u4e00\u79cd\u65b9\u6cd5\u5b9e\u73b0\u4e0a\u9762\u7684\u6548\u679c<\/p>\n\n\n\n<pre>\n<span>from tqdm import tqdm<\/span>\n<span>import time<\/span>\n<span><\/span>\n<span>#total\u53c2\u6570\u8bbe\u7f6e\u8fdb\u5ea6\u6761\u7684\u603b\u957f\u5ea6<\/span>\n<span>pbar = tqdm(total=100)<\/span>\n<span>for i in range(100):<\/span>\n<span>    time.sleep(0.05)<\/span>\n<span>    #\u6bcf\u6b21\u66f4\u65b0\u8fdb\u5ea6\u6761\u7684\u957f\u5ea6<\/span>\n<span>    pbar.update(1)<\/span>\n<span><\/span>\n<span>#\u5173\u95ed\u5360\u7528\u7684\u8d44\u6e90<\/span>\n<span>pbar.close()<\/span>\n<\/pre>\n\n\n\n<h3>\u00a0<\/h3>\n<h3>\u81ea\u5b9a\u4e49\u8fdb\u5ea6\u6761\u663e\u793a\u4fe1\u606f<\/h3>\n<p>\u901a\u8fc7set_description\u548cset_postfix\u65b9\u6cd5\u8bbe\u7f6e\u8fdb\u5ea6\u6761\u663e\u793a\u4fe1\u606f<\/p>\n\n\n\n<pre>\n<span>from tqdm import trange<\/span>\n<span>from random import random,randint<\/span>\n<span>import time<\/span>\n<span><\/span>\n<span>with trange(100) as t:<\/span>\n<span>    for i in t:<\/span>\n<span>        #\u8bbe\u7f6e\u8fdb\u5ea6\u6761\u5de6\u8fb9\u663e\u793a\u7684\u4fe1\u606f<\/span>\n<span>        t.set_description(&quot;GEN %i&quot;%i)<\/span>\n<span>        #\u8bbe\u7f6e\u8fdb\u5ea6\u6761\u53f3\u8fb9\u663e\u793a\u7684\u4fe1\u606f<\/span>\n<span>        t.set_postfix(loss=random(),gen=randint(1,999),str=&quot;h&quot;,lst=[1,2])<\/span>\n<span>        time.sleep(0.1)<\/span>\n<\/pre>\n\n\n\n<p><img loading=\"lazy\" class=\"size-full wp-image-1597 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_04.gif\" alt=\"\" width=\"1151\" height=\"233\" \/><\/p>\n\n\n\n<pre>\n<span>from tqdm import tqdm<\/span>\n<span>import time<\/span>\n<span> <\/span>\n<span>with tqdm(total=10,bar_format=&quot;{postfix[0]}{postfix[1][value]:&gt;9.3g}&quot;,<\/span>\n<span>     postfix=[&quot;Batch&quot;,dict(value=0)]) as t:<\/span>\n<span>    for i in range(10):<\/span>\n<span>        time.sleep(0.05)<\/span>\n<span>        t.postfix[1][&quot;value&quot;] = i \/ 2<\/span>\n<span>        t.update()<\/span>\n<\/pre>\n\n\n\n<p><img loading=\"lazy\" class=\"size-full wp-image-1598 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_05.gif\" alt=\"\" width=\"1221\" height=\"229\" \/><\/p>\n<h3>\u00a0<\/h3>\n<h3>\u591a\u5c42\u5faa\u73af\u8fdb\u5ea6\u6761<\/h3>\n<p>\u901a\u8fc7<code>tqdm<\/code>\u4e5f\u53ef\u4ee5\u5f88\u7b80\u5355\u7684\u5b9e\u73b0\u5d4c\u5957\u5faa\u73af\u8fdb\u5ea6\u6761\u7684\u5c55\u793a\u3002<\/p>\n\n\n\n<pre>\n<span>from tqdm import tqdm<\/span>\n<span>import time<\/span>\n<span> <\/span>\n<span>for i in tqdm(range(20), ascii=True,desc=&quot;1st loop&quot;):<\/span>\n<span>    for j in tqdm(range(10), ascii=True,desc=&quot;2nd loop&quot;):<\/span>\n<span>        time.sleep(0.01)<\/span>\n<\/pre>\n\n\n\n<p><img loading=\"lazy\" class=\"size-full wp-image-1599 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_06.png\" alt=\"\" width=\"908\" height=\"597\" \/><\/p>\n<p>\u5728<code>pycharm<\/code>\u4e2d\u6267\u884c\u4ee5\u4e0a\u4ee3\u7801\u7684\u65f6\u5019\uff0c\u4f1a\u51fa\u73b0\u8fdb\u5ea6\u6761\u4f4d\u7f6e\u9519\u4e71\uff0c\u76ee\u524d\u5b98\u65b9\u5e76\u6ca1\u6709\u7ed9\u51fa\u597d\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u8fd9\u662f\u7531\u4e8epycharm\u4e0d\u652f\u6301\u67d0\u4e9b\u5b57\u7b26\u5bfc\u81f4\u7684\uff0c\u4e0d\u8fc7\u53ef\u4ee5\u5c06\u4e0a\u9762\u7684\u4ee3\u7801\u4fdd\u5b58\u4e3a\u811a\u672c\u7136\u540e\u5728\u547d\u4ee4\u884c\u4e2d\u6267\u884c\uff0c\u6548\u679c\u5982\u4e0b<\/p>\n<p><img loading=\"lazy\" class=\"size-full wp-image-1600 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_07.gif\" alt=\"\" width=\"1162\" height=\"267\" \/><\/p>\n<h3>\u00a0<\/h3>\n<h3>\u591a\u8fdb\u7a0b\u8fdb\u5ea6\u6761<\/h3>\n<p>\u5728\u4f7f\u7528\u591a\u8fdb\u7a0b\u5904\u7406\u4efb\u52a1\u7684\u65f6\u5019\uff0c\u901a\u8fc7tqdm\u53ef\u4ee5\u5b9e\u65f6\u67e5\u770b\u6bcf\u4e00\u4e2a\u8fdb\u7a0b\u4efb\u52a1\u7684\u5904\u7406\u60c5\u51b5<\/p>\n\n\n\n<pre>\n<span>from time import sleep<\/span>\n<span>from tqdm import trange, tqdm<\/span>\n<span>from multiprocessing import Pool, freeze_support, RLock<\/span>\n<span> <\/span>\n<span>L = list(range(9))<\/span>\n<span> <\/span>\n<span>def progresser(n):<\/span>\n<span>  interval = 0.001 \/ (n + 2)<\/span>\n<span>  total = 5000<\/span>\n<span>  text = &quot;#{}, est. {:&lt;04.2}s&quot;.format(n, interval * total)<\/span>\n<span>  for i in trange(total, desc=text, position=n,ascii=True):<\/span>\n<span>    sleep(interval)<\/span>\n<span> <\/span>\n<span>if __name__ == &#x27;__main__&#x27;:<\/span>\n<span>  freeze_support() # for Windows support<\/span>\n<span>  p = Pool(len(L),<\/span>\n<span>       # again, for Windows support<\/span>\n<span>       initializer=tqdm.set_lock, initargs=(RLock(),))<\/span>\n<span>  p.map(progresser, L)<\/span>\n<span>  print(&quot;\\n&quot; * (len(L) - 2))<\/span>\n<\/pre>\n\n\n\n<p><img loading=\"lazy\" class=\"size-full wp-image-1606 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_08.gif\" alt=\"\" width=\"1434\" height=\"307\" \/><\/p>\n<h3>\u00a0<\/h3>\n<h3>pandas\u4e2d\u4f7f\u7528tqdm<\/h3>\n\n\n\n<pre>\n<span>import pandas as pd<\/span>\n<span>import numpy as np<\/span>\n<span>from tqdm import tqdm<\/span>\n<span> <\/span>\n<span>df = pd.DataFrame(np.random.randint(0, 100, (100000, 6)))<\/span>\n<span> <\/span>\n<span> <\/span>\n<span>tqdm.pandas(desc=&quot;my bar!&quot;)<\/span>\n<span>df.progress_apply(lambda x: x**2)<\/span>\n<\/pre>\n\n\n\n<p><img loading=\"lazy\" class=\"size-full wp-image-1601 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_09.png\" alt=\"\" width=\"809\" height=\"54\" \/><\/p>\n<h3>\u00a0<\/h3>\n<h3>\u9012\u5f52\u4f7f\u7528\u8fdb\u5ea6\u6761<\/h3>\n\n\n\n<pre>\n<span>from tqdm import tqdm<\/span>\n<span>import os.path<\/span>\n<span> <\/span>\n<span>def find_files_recursively(path, show_progress=True):<\/span>\n<span>    files = []<\/span>\n<span>    # total=1 assumes &#x60;path&#x60; is a file<\/span>\n<span>    t = tqdm(total=1, unit=&quot;file&quot;, disable=not show_progress)<\/span>\n<span>    if not os.path.exists(path):<\/span>\n<span>        raise IOError(&quot;Cannot find:&quot; + path)<\/span>\n<span> <\/span>\n<span>    def append_found_file(f):<\/span>\n<span>        files.append(f)<\/span>\n<span>        t.update()<\/span>\n<span> <\/span>\n<span>    def list_found_dir(path):<\/span>\n<span>        &quot;&quot;&quot;returns os.listdir(path) assuming os.path.isdir(path)&quot;&quot;&quot;<\/span>\n<span>        try:<\/span>\n<span>            listing = os.listdir(path)<\/span>\n<span>        except:<\/span>\n<span>            return []<\/span>\n<span>        # subtract 1 since a &quot;file&quot; we found was actually this directory<\/span>\n<span>        t.total += len(listing) - 1<\/span>\n<span>        # fancy way to give info without forcing a refresh<\/span>\n<span>        t.set_postfix(dir=path[-10:], refresh=False)<\/span>\n<span>        t.update(0) # may trigger a refresh<\/span>\n<span>        return listing<\/span>\n<span> <\/span>\n<span>    def recursively_search(path):<\/span>\n<span>        if os.path.isdir(path):<\/span>\n<span>            for f in list_found_dir(path):<\/span>\n<span>                recursively_search(os.path.join(path, f))<\/span>\n<span>        else:<\/span>\n<span>            append_found_file(path)<\/span>\n<span> <\/span>\n<span>    recursively_search(path)<\/span>\n<span>    t.set_postfix(dir=path)<\/span>\n<span>    t.close()<\/span>\n<span>    return files<\/span>\n<span> <\/span>\n<span>find_files_recursively(&quot;E:\/&quot;)<\/span>\n<\/pre>\n\n\n\n<p><img loading=\"lazy\" class=\"size-full wp-image-1602 aligncenter\" src=\"http:\/\/www.yumefx.com\/wp-content\/uploads\/2020\/05\/tqdm_10.png\" alt=\"\" width=\"1004\" height=\"40\" \/><\/p>\n<h3>\u00a0<\/h3>\n<h3>\u6ce8\u610f<\/h3>\n<p>\u5728\u4f7f\u7528<code>tqdm<\/code>\u663e\u793a\u8fdb\u5ea6\u6761\u7684\u65f6\u5019\uff0c\u5982\u679c\u4ee3\u7801\u4e2d\u5b58\u5728<code>print<\/code>\u53ef\u80fd\u4f1a\u5bfc\u81f4\u8f93\u51fa\u591a\u884c\u8fdb\u5ea6\u6761\uff0c\u6b64\u65f6\u53ef\u4ee5\u5c06<code>print<\/code>\u8bed\u53e5\u6539\u4e3a<code>tqdm.write<\/code>\uff0c\u4ee3\u7801\u5982\u4e0b<\/p>\n\n\n\n<pre>\n<span>for i in tqdm(range(10),ascii=True):<\/span>\n<span>    tqdm.write(&quot;come on&quot;)<\/span>\n<span>    time.sleep(0.1)<\/span>\n<\/pre>\n\n\n\n<h1>\u00a0<\/h1>\n<h1 style=\"text-align: center;\">Linux\u8fdb\u5ea6\u6761<\/h1>\n<h3>\u4e0d\u4f7f\u7528tqdm<\/h3>\n\n\n\n<pre>\n<span>time find . -name &#x27;*.py&#x27; -type f -exec cat \\{} \\; | wc -l<\/span>\n<span>857365<\/span>\n<span> <\/span>\n<span>real  0m3.458s<\/span>\n<span>user  0m0.274s<\/span>\n<span>sys   0m3.325s<\/span>\n<\/pre>\n\n\n\n<h3>\u00a0<\/h3>\n<h3>\u4f7f\u7528tqdm<\/h3>\n\n\n\n<pre>\n<span>time find . -name &#x27;*.py&#x27; -type f -exec cat \\{} \\; | tqdm | wc -l<\/span>\n<span>857366it [00:03, 246471.31it\/s]<\/span>\n<span>857365<\/span>\n<span> <\/span>\n<span>real  0m3.585s<\/span>\n<span>user  0m0.862s<\/span>\n<span>sys   0m3.358s<\/span>\n<\/pre>\n\n\n\n<h3>\u00a0<\/h3>\n<h3>\u6307\u5b9atqdm\u7684\u53c2\u6570\u63a7\u5236\u8fdb\u5ea6\u6761<\/h3>\n\n\n\n<pre>\n<span>find . -name &#x27;*.py&#x27; -type f -exec cat \\{} \\; |<\/span>\n<span>  tqdm --unit loc --unit_scale --total 857366 &gt;&gt; \/dev\/null<\/span>\n<span>100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 857K\/857K [00:04&lt;00:00, 246Kloc\/s]<\/span>\n<\/pre>\n\n\n\n<pre>\n<span>7z a -bd -r backup.7z docs\/ | grep Compressing |<\/span>\n<span>  tqdm --total $(find docs\/ -type f | wc -l) --unit files &gt;&gt; backup.log<\/span>\n<span>100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2589| 8014\/8014 [01:37&lt;00:00, 82.29files\/s]<\/span>\n<\/pre>\n\n\n\n<p>\u00a0<\/p>\n<p>\u8f6c\u8f7d\u81ea<a href=\"https:\/\/blog.csdn.net\/sinat_29957455\/article\/details\/97558787\">\u4fee\u70bc\u4e4b\u8def<\/a>\u3002<\/p>\n<p>\u00a0<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u5bf9\u5927\u591a\u6570\u4eba\u800c\u8a00\uff0c<\/p>\n<p>\u4eba\u751f\u4e0d\u662f\u4e00\u573a\u5192\u9669\uff0c<\/p>\n<p>\u800c\u662f\u4e00\u80a1\u65e0\u6cd5\u6297\u62d2\u7684\u6d2a\u6d41\u3002<\/p>\n<p style=\"text-align: right;\">\u300a\u80fd\u4e0d\u80fd\u8bf7\u4f60\u5b89\u9759\u70b9\uff1f\u300b<\/p>\n<p style=\"text-align: right;\">\u2014\u2014\u96f7\u8499\u5fb7\u00b7\u5361\u4f5b<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ecb\u7ecd \u6709\u65f6\u5019\u5728\u4f7f\u7528Python\u5904\u7406\u6bd4\u8f83\u8017\u65f6\u64cd\u4f5c\u7684\u65f6\u5019\uff0c\u4e3a\u4e86\u4fbf\u4e8e\u89c2\u5bdf\u5904\u7406\u8fdb\u5ea6\uff0c\u9700\u8981\u901a\u8fc7\u8fdb\u5ea6\u6761\u5c06\u5904\u7406\u60c5\u51b5\u8fdb\u884c\u53ef\u89c6\u5316 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12,4],"tags":[37,15],"_links":{"self":[{"href":"https:\/\/www.yumefx.com\/index.php?rest_route=\/wp\/v2\/posts\/1593"}],"collection":[{"href":"https:\/\/www.yumefx.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yumefx.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yumefx.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yumefx.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1593"}],"version-history":[{"count":0,"href":"https:\/\/www.yumefx.com\/index.php?rest_route=\/wp\/v2\/posts\/1593\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.yumefx.com\/index.php?rest_route=\/wp\/v2\/media\/1610"}],"wp:attachment":[{"href":"https:\/\/www.yumefx.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yumefx.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yumefx.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}