You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从CSV文件批量生成Vcard二维码?扫描仅识别URL求助

问题排查与修复方案

错误原因

你的二维码无法正常识别完整VCARD信息,是代码构造VCARD内容时存在3个格式错误导致的:

  • 多余的双引号:三引号内部每一行VCARD字段外都额外包裹了双引号,这些引号会直接写入二维码内容,不符合VCARD标准规范,导致解析器识别中断
  • 多余的缩进与空行:三引号开头的空行、每行VCARD字段前的空格缩进都会被写入内容,破坏VCARD的结构化格式
  • FN字段格式错误:姓名字段用了+拼接,不符合VCARD姓名展示规范,也会干扰部分解析器的识别逻辑

修正后可正常运行的代码

import pyqrcode
import pandas as pd

def createQRCode():
    # 此处替换为你的CSV文件实际路径
    df = pd.read_csv("havas.csv")

    for index, values in df.iterrows():
        lastname = values["lastname"]
        firstname = values["firstname"]
        title = values["title"]
        phone = values["phone"]
        email = values["email"]
        website = values["website"]
        org = values["org"]
        street = values["street"].strip() # 去除地址字段可能存在的前后空格
        city = values["city"]
        p_code = values["p_code"]
        country = values["country"]

        # VCARD内容顶格写,无多余引号、无多余缩进
        data = f"""BEGIN:VCARD
VERSION:3.0
N:{lastname};{firstname};;;
FN:{firstname} {lastname}
TITLE:{title}
TEL;TYPE=work,VOICE:{phone}
EMAIL;TYPE=WORK:{email}
URL:{website}
ORG:{org}
ADR;TYPE=work,PREF:;;{street};{city};{p_code};{country}
END:VCARD"""

        image = pyqrcode.create(data, encoding='utf-8')
        image.svg(f"{lastname}_{firstname}.svg", scale="5")
        # 可选:生成PNG格式,需要提前安装pypng库:pip install pypng
        # image.png(f"{lastname}_{firstname}.png", scale=5)

createQRCode()

验证建议

修改代码后可以先打印单条data内容,确认格式正确后再批量生成二维码:

  1. 取出打印的data内容,复制到VCARD解析工具验证字段是否完整
  2. 生成单个二维码测试扫描,确认所有字段都能正常识别后再批量运行

内容的提问来源于stack exchange,提问作者Nick_S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 02:36:03