V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · Nov 11, 2022 · 2616 views
    This topic created in 1263 days ago, the information mentioned may be changed or developed.
    如题。接口的参数都存在一个 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 replies    2022-11-12 15:50:39 +08:00
    renmu
        1
    renmu  
       Nov 11, 2022 via Android   ❤️ 1
    抓包看请求
    F281M6Dh8DXpD1g2
        2
    F281M6Dh8DXpD1g2  
       Nov 11, 2022 via iPhone   ❤️ 1
    你不看看提交的请求是啥
    lookStupiToForce
        3
    lookStupiToForce  
       Nov 11, 2022   ❤️ 1
    原因盲猜有不可见且不可打印字符
    测试方法:
    把 temp_dict 用 print(repr(temp_dict))打印一遍,对比你复制后的 py 文件里的 print(repr(new_dict)),看有没有啥多出来的东西
    873792861
        4
    873792861  
    OP
       Nov 12, 2022 via Android
    @lookStupiToForce 把代码复制到正常的 py 里就都正常提交了。btw ,我用的是 jupyter ,不知道为什么两个 notebook 会出现这种奇怪的情况
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   992 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:35 · PVG 03:35 · LAX 12:35 · JFK 15:35
    ♥ Do have faith in what you're doing.