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
873792861
V2EX  ›  Python

pandas 读取 Excel 参数文件,提交接口报错,打印出来的 dict 复制出来提交却正常

  •  
  •   873792861 · 2022-11-11 12:36:54 +08:00 · 1921 次点击
    这是一个创建于 772 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题。接口的参数都存在一个 Excel 里。利用 pandas 读取出来后,转为 record 形式的 dict 。然后用 request 提交,但是报请求接口参数不正确,模板渲染失败。但是把这个 dict 打印出来后,复制到另一个 py ,用同样的方法转为 JSON 后提交成功。这是为什么呢?核心的代码如下:

    import requests
    import json
    import pandas as pd
    from datetime import datetime


    tk=Token(get_hlht_token())
    tb=pd.read_excel('D:\\log\\查询结果.xlsx')
    tb=tb.fillna('')
    tb=tb.astype({'sid':str,'ztlb':str,'jclb':str,'sjje':str})

    lists=tb.to_dict('records')
    temp_dict=lists[6]
    fk_url='http://xxx?access_token={}'.format(tk.token)
    header = { 'Content-Type': 'application/json'}
    temp_dict['token']=get_lhzc_token()
    jsons=json.dumps(temp_dict)
    r=requests.post(url=fk_url,data=jsons,headers=header)
    print(r.text)


    把 temp_dict 打印出来,复制到另一个 py 文件,用同样的方式就能提交成功,这是为啥呢?一开始百度以为是 utf-8 编码的问题,但是加上.encode('ut8')也不行。麻烦大家指点下迷津
    4 条回复    2022-11-12 15:50:39 +08:00
    renmu
        1
    renmu  
       2022-11-11 12:42:17 +08:00 via Android   ❤️ 1
    抓包看请求
    liprais
        2
    liprais  
       2022-11-11 12:42:20 +08:00 via iPhone   ❤️ 1
    你不看看提交的请求是啥
    lookStupiToForce
        3
    lookStupiToForce  
       2022-11-11 15:10:59 +08:00   ❤️ 1
    原因盲猜有不可见且不可打印字符
    测试方法:
    把 temp_dict 用 print(repr(temp_dict))打印一遍,对比你复制后的 py 文件里的 print(repr(new_dict)),看有没有啥多出来的东西
    873792861
        4
    873792861  
    OP
       2022-11-12 15:50:39 +08:00 via Android
    @lookStupiToForce 把代码复制到正常的 py 里就都正常提交了。btw ,我用的是 jupyter ,不知道为什么两个 notebook 会出现这种奇怪的情况
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2742 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:11 · PVG 16:11 · LAX 00:11 · JFK 03:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.