V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
771456556
V2EX  ›  Python

Python 怎样插入字典到数据库?

  •  1
     
  •   771456556 · 2017-04-19 23:40:15 +08:00 · 6497 次点击
    这是一个创建于 2557 天前的主题,其中的信息可能已经有所发展或是发生改变。

    s={'项目特色': '项目特色海景房 ', '建筑面积': '建筑面积 130000 平方米' }
    例如我有以上的字典,并且在数据库中都建立了相对应的列名 然后


    import pymysql
    for key in s.keys():
    cursor.execute("insert into 澳门 (%s) values (%s)",(key,s[key]))

    然后提示
    pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''建筑面积') values ('建筑面积 130000 平方米')' at line 1")

    14 条回复    2017-04-24 10:50:28 +08:00
    zsz
        1
    zsz  
       2017-04-19 23:54:05 +08:00 via iPhone
    for 循环插入了 2 条数据,一条数据写入的字段是 “项目特色”,一条数据是 “建筑面积”,你确认么?
    est
        2
    est  
       2017-04-19 23:57:05 +08:00
    insert into table set value="字典"
    dtfm
        3
    dtfm  
       2017-04-20 00:43:12 +08:00 via Android
    insert into 后面跟的是表名啊
    mhycy
        4
    mhycy  
       2017-04-20 00:55:16 +08:00
    python 连接 MySQL 没有真正的参数化查询
    zhaojjxvi
        5
    zhaojjxvi  
       2017-04-20 01:23:17 +08:00 via iPhone
    表名编码的问题?
    反正我一般不会建中文名的表名
    zhaojjxvi
        6
    zhaojjxvi  
       2017-04-20 01:31:02 +08:00 via iPhone
    @est set 前面是 update 吧
    casparchen
        7
    casparchen  
       2017-04-20 04:15:41 +08:00
    执行了两条 insert 语句,每条少一个字段
    suueyoung
        8
    suueyoung  
       2017-04-20 07:10:41 +08:00 via iPhone
    所以我用 orm
    771456556
        9
    771456556  
    OP
       2017-04-20 08:00:40 +08:00 via Android
    谢谢大家回复…我发现是我蠢了…现在已经改好了,中文的表名可以用
    yanzixuan
        10
    yanzixuan  
       2017-04-20 08:50:23 +08:00
    @771456556 为啥用 sqlalchemy 这样的 ORM 。建立好 model 之后,直接 xx_model(**temp_dict), 然后 add, commint 就行
    Hozzz
        11
    Hozzz  
       2017-04-20 09:07:26 +08:00
    中文表名...
    shihira
        12
    shihira  
       2017-04-20 11:55:22 +08:00 via Android
    如果是当成纯数据最好存进个 blob 里,非要存进 text 里的话先 base64 编码。最好不要拼接字符串,仔细转义,小心注入。
    woostundy
        13
    woostundy  
       2017-04-20 12:23:19 +08:00
    这种东西存 mongo 里比较好,或者弄成 json 再存。
    cnbgfm
        14
    cnbgfm  
       2017-04-24 10:50:28 +08:00
    是怎么解决的,能告诉下方法吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2610 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:48 · PVG 18:48 · LAX 03:48 · JFK 06:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.