当前位置:首页>python>使用 Python 统一海关税号编码

使用 Python 统一海关税号编码

  • 2026-08-18 23:11:27
使用 Python 统一海关税号编码

由于借助 AI 工具学习编程已经变得非常容易了,因此之后的课程就不再默认进行视频讲解了,如果特别需要视频讲解也可以联系李老师预约讲解~讲义材料学习过程中遇到的问题也可以及时与李老师联系。

购买 RStata 会员(任意会员均可)即可参加该课程啦(之前的和未来的都可以参加)!

购买会员可以从这里下单:https://rstata.duanshu.com/#/card/list/ 

* 如果发票可添加小编微信 r_stata2 (RStata 李老师)开具。如需数据资料,购买后可添加小编微信免费领取数据折扣卡。

更多关于 RStata 会员的更多信息可添加微信号 r_stata2 咨询:

课程主页(点击文末的阅读原文即可跳转):https://rstata.duanshu.com/#/brief/course/aae08b44662b44b284369804399ae4e9


一、为什么要统一海关税号编码

海关数据中的商品编码(税号编码),也就是我们常说的 HS 编码(Harmonized System,商品名称及编码协调制度),是国际贸易中对商品进行分类的通用语言。它有两个特点需要特别注意:

  1. 前 6 位是国际通用码,全球统一;后 2 位是国内子目,由各国海关自行扩展。我国海关数据中的商品编码通常为 8 位
  2. HS 编码每隔约 5 年修订一次。世界海关组织(WCO)会新增、删除、拆分或合并部分税目,因此不同年份的数据使用的是不同版本的 HS 编码

在我们的海关数据(2000–2016 年)中,年份与 HS 版本的对应关系如下:

library(tidyverse)
year_hs <- tibble(
year=2000:2016,
  hs_version = c(rep("HS1996", 2), rep("HS2002", 5),
                 rep("HS2007", 5), rep("HS2012", 5))
)
year_hs %>%
  group_by(hs_version) %>%
  summarise(年份区间 = paste0(min(year), "–", max(year)), .groups= "drop") %>%
  rename(HS版本 = hs_version) %>%
  knitr::kable(align = "c")

如果直接把跨年份的数据放在一起做面板分析,同一个商品在不同年份可能对应不同的编码,会导致匹配错误。因此在做任何跨期分析之前,必须先把所有年份的编码统一到同一个版本

本讲义演示如何用 Python(借助 R 的 reticulate 包创建独立虚拟环境来运行)把海关数据统一到 HS1996 / HS2002 / HS2007 / HS2012 / HS2017 五个版本,并保留原始编码。为节省篇幅,正文以 2014–2016 年(均为 HS2012 版本)的数据为例;处理全部年份只需把年份列表改为 range(2000, 2017) 即可。

二、数据准备

原始海关数据体量庞大,我们先用 Stata 把每年的数据抽取出 newhgid(观测 ID)、年份商品编码 三个变量,另存为分年 .dta 文件,减小后续读取的压力。对应的 Stata 代码如下(其 Python 等价写法见下方程序块,本项目已附带抽取好的 海关数据商品编码分年/ 数据):

cd"使用 Python 统一海关税号编码/"
capmkdir"海关数据商品编码分年"
forval y = 2000/2016 {
use".../海关数据分年/`y'.dta"clear
keep newhgid 年份 商品编码
save"海关数据商品编码分年/`y'"replace
}
# Python 等价写法(需原始海关分年 .dta,本项目已提前抽取好,此处仅供示意)
# import pandas as pd
# for y in range(2000, 2017):
#     df = pd.read_stata(f".../海关数据分年/{y}.dta")
#     df = df[["newhgid", "年份", "商品编码"]]
#     df.to_stata(f"海关数据商品编码分年/{y}.dta", write_index=False)

三、读取 HS 转换表(reticulate 虚拟环境)

本文档借助 reticulate 在 R 中调用 Python,并为项目创建专属虚拟环境 .venv,所需依赖(pandas / numpy / openpyxl / xlrd / matplotlib)全部隔离其中,避免与系统 Python(如 Anaconda)冲突。

重要说明:reticulate 在 R 会话中只能绑定一次 Python——一旦某个 {python} 代码块运行,Python 解释器就被锁定。因此虚拟环境的激活已在本文档开头的 reticulate-setup chunk 中、通过 Sys.setenv(RETICULATE_PYTHON = ...) 提前完成。

安装 Python 包(仅首次 knit 时自动执行)

py_pkgs <- c("pandas""numpy""openpyxl""xlrd""matplotlib")
installed <- py_list_packages(".venv")$package
need_install <- setdiff(py_pkgs, installed)
if (length(need_install) > 0) {
  virtualenv_install(".venv", packages = need_install)
  message("已安装缺失的包:"paste(need_install, collapse = ", "))
else {
  message("所有 Python 包已就绪,无需安装")
}

验证激活状态

py_config()

版本之间的转换依赖联合国统计司提供的官方对照表。每个 Excel 文件里通常有两张表:

  • Conversion Table:只保留在新版本中仍有对应关系的旧码,覆盖不全;
  • Correlation Table:记录 1:1 / 1:n / n:1 / n:n 全部对应关系,覆盖度更高。

转换表可以从这里下载:https://unstats.un.org/unsd/classifications/Econ

因此我们统一使用 Correlation Table。所有转换表方向都是「新版本 → 旧版本」,其中第 1 列是新版本码、第 3 列是旧版本码。我们分别按正向(旧→新)和反向(新→旧)读取,一对多时取第一个匹配:

import os
import numpy as np
import pandas as pd
# 路径设置(knit 时已锁定工作目录为本文档所在目录)
base_dir   = "."
data_dir   = os.path.join(base_dir, "海关数据商品编码分年")
conv_dir   = os.path.join(base_dir, "HS代码转换对照表")
output_dir = os.path.join(base_dir, "统一HS编码")
os.makedirs(output_dir, exist_ok=True)
years = [201420152016]
def_col_to_str(series):
"""安全地转换为字符串,去掉被识别为浮点而产生的 '.0'。"""
    s = series.dropna().astype(str)
return s.str.replace(r"\.0$""", regex=True)
# 此处代码需下载讲义材料查看~
file_02to96 = os.path.join(conv_dir, "HS 2002 to HS 1996 - Correlation and conversion tables.xls")
file_07to02 = os.path.join(conv_dir, "HS 2007 to HS 2002 Correlation and conversion tables.xls")
file_12to07 = os.path.join(conv_dir, "HS 2012 to HS 2007 Correlation and conversion tables.xls")
file_17to12 = os.path.join(conv_dir, "HS 2017 to HS 2012 Conversion And Correlation Tables.xlsx")
# 此处代码需下载讲义材料查看~
print(f"正向表行数: HS96->02={len(fwd_96to02)}, HS02->07={len(fwd_02to07)}, "
f"HS07->12={len(fwd_07to12)}, HS12->17={len(fwd_12to17)}")
fwd_12to17.head()

四、构建完整查找表

有了相邻版本的对照关系后,就可以把它们链式拼接起来,为每个源版本构建一张包含全部 5 个目标版本的查找表。核心技巧是级联填充:若某一步转换缺失(NaN),则沿用上一版本的码,保证链条不中断。

以 HS2012 源(对应 2014–2016 年数据)为例——它向前只需一步到 HS2017,向后需要依次退回到 HS2007、HS2002、HS1996:

def_fill_chain(lk, order):
"""按 order 顺序级联填充:缺失则沿用上一个版本的码。"""
for i inrange(1len(order)):
        prev, cur = order[i - 1], order[i]
        lk[cur] = lk[cur].fillna(lk[prev])
return lk
# 此处代码需下载讲义材料查看~
print(f"HS2012 源查找表行数: {len(lk_12)}")
lk_12.head()

其余三个源版本(HS1996 / HS2002 / HS2007)的查找表构建方式完全类似,只是正向、反向链条的长度不同,完整代码见配套脚本 使用 Python 统一海关税号编码.py

五、执行编码转换

商品编码为 8 位:前 6 位参与版本转换,后 2 位(国内子目)保留不变。转换时用字典做「查表 → 缺失填原码 → 拼回后 2 位」,对上千万行数据也非常高效:

# 用 2014 年数据演示(源版本 HS2012)
# 此处代码需下载讲义材料查看~

可以看到,源版本变量(这里是 HS2012)与原始 商品编码 完全一致(恒等转换),而其他版本会随着税目的历史变动而不同。最终把 HS1996 ~ HS2017 五个新变量与原始变量一起写回 .dta,即完成统一:

for yr in years:
    df = pd.read_stata(os.path.join(data_dir, f"{yr}.dta"))
    code = df["商品编码"].astype(str)
    hs6 = code.str[:6]
    suffix = code.str[6:8]
    def map_ver(col):
        mapping = dict(zip(lk_12["source_code"], lk_12[col]))
        conv = hs6.map(mapping).fillna(hs6)
        return (conv.astype(str) + suffix).values
    df["HS1996"] = map_ver("hs96")
    df["HS2002"] = map_ver("hs02")
    df["HS2007"] = map_ver("hs07")
    df["HS2012"] = map_ver("hs12")
    df["HS2017"] = map_ver("hs17")
    df.to_stata(os.path.join(output_dir, f"{yr}.dta"), write_index=False)
print(f"{yr} 年已写出:统一HS编码/{yr}.dta")

六、统一质量:无法统一的比例

并非所有编码都能成功统一。若某个 6 位码不是目标版本中的合法 HS 编码(例如中国海关特有的 98/99 章特殊码、或数据录入错误),它就无法被统一,我们保留其原码。下面按观测数加权,统计 2014–2016 年各版本无法统一的比例:

valid_codes = {
"hs96": pd.unique(pd.concat([bwd_02to96["to_old"], fwd_96to02["from_old"]])),
"hs02": pd.unique(pd.concat([fwd_96to02["to_new"], fwd_02to07["from_old"],
                                 bwd_02to96["from_new"], bwd_07to02["to_old"]])),
"hs07": pd.unique(pd.concat([fwd_02to07["to_new"], fwd_07to12["from_old"],
                                 bwd_07to02["from_new"], bwd_12to07["to_old"]])),
"hs12": pd.unique(pd.concat([fwd_07to12["to_new"], fwd_12to17["from_old"],
                                 bwd_12to07["from_new"], bwd_17to12["to_old"]])),
"hs17": pd.unique(pd.concat([fwd_12to17["to_new"], bwd_17to12["from_new"]])),
}
ver_cols = {"hs96""HS1996""hs02""HS2002""hs07""HS2007",
"hs12""HS2012""hs17""HS2017"}
src_of = {2014: "HS2012", 2015: "HS2012", 2016: "HS2012"}
rows = []
for yr in years:
d = pd.read_stata(os.path.join(data_dir, f"{yr}.dta"), columns=["商品编码"])
    hs6 = d["商品编码"].astype(str).str[:6]
tab = hs6.value_counts().rename_axis("hs6").rename("n").reset_index()
total = int(tab["n"].sum())
for col, labelin ver_cols.items():
        valid = set(valid_codes[col])
        unmatched = int(tab.loc[~tab["hs6"].isin(valid), "n"].sum())
        rows.append({"year": yr, "source_version": src_of[yr],
"target_version"label"total_obs"total,
"unmatched_obs": unmatched,
"unmatched_pct": unmatched / total * 100})
miss_stats = pd.DataFrame(rows)
print(miss_stats.to_string(index=False))

再用 matplotlib 画成热力图,直观展示各年各版本的无法统一比例:

import matplotlib
matplotlib.use("Agg")                       # 无显示后端,仅供保存
from 绘制缺失比例图 import plot_missing_heatmap
plot_missing_heatmap(miss_stats,
"各版本缺失比例热力图_2014-2016.png")

从图中可以看出:

  • 2014 年几乎完美,无法统一比例为 0%
  • 2015 年约 0.04%,主要是少量海关特殊码;
  • 2016 年明显偏高(约 1.33%),原因是当年 980400 系列跨境电商监管码大量出现——它一个码就占了约 23 万条观测,而这类码根本不属于国际 HS 体系,因此在任何版本下都无法统一。

七、小结

统一海关税号编码的完整流程可以概括为四步:

  1. 抽取变量:用 Stata / Python 把大数据瘦身为 newhgid + 年份 + 商品编码
  2. 读取 Correlation Table:正、反两个方向分别构建相邻版本的对照关系;
  3. 链式拼接 + 级联填充:为每个源版本构建到 5 个目标版本的查找表;
  4. 向量化转换:前 6 位查表转换、后 2 位保留,缺失则保留原码。

除个别中国海关特殊码与数据录入错误外,绝大多数年份的统一成功率都在 99.9% 以上,可以放心用于跨期面板分析。完整可运行代码见配套脚本 使用 Python 统一海关税号编码.py 与 绘制缺失比例图.py

如何参加课程?

购买 RStata 会员(任意会员均可)即可参加该课程啦(之前的和未来的都可以参加)!

购买会员可以从这里下单:https://rstata.duanshu.com/#/card/list/ 

* 如果发票可添加小编微信 r_stata2 (RStata 李老师)开具。如需数据资料,购买后可添加小编微信免费领取数据折扣卡。

更多关于 RStata 会员的更多信息可添加微信号 r_stata2 咨询:

课程主页(点击文末的阅读原文即可跳转):https://rstata.duanshu.com/#/brief/course/aae08b44662b44b284369804399ae4e9

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-22 01:40:17 HTTP/2.0 GET : https://f.mffb.com.cn/a/507547.html
  2. 运行时间 : 0.257248s [ 吞吐率:3.89req/s ] 内存消耗:4,905.78kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=550d4e0c8259109ec5b21c9d8855cfcc
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000919s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001448s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000741s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000622s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001317s ]
  6. SELECT * FROM `set` [ RunTime:0.005346s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001958s ]
  8. SELECT * FROM `article` WHERE `id` = 507547 LIMIT 1 [ RunTime:0.001212s ]
  9. UPDATE `article` SET `lasttime` = 1787334017 WHERE `id` = 507547 [ RunTime:0.045359s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.004335s ]
  11. SELECT * FROM `article` WHERE `id` < 507547 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001412s ]
  12. SELECT * FROM `article` WHERE `id` > 507547 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001123s ]
  13. SELECT * FROM `article` WHERE `id` < 507547 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002215s ]
  14. SELECT * FROM `article` WHERE `id` < 507547 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002219s ]
  15. SELECT * FROM `article` WHERE `id` < 507547 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.026448s ]
0.260877s