调用的都是同一个 C 函数,python 用的 ctypes
// c 语言中调用是这样
Init("{\"a\":\"../../av\", \"b\":\"../../bv\"}")
#如果用 python 调用 init 函数时,应该传递啥样的 json 字符串?这样不行😂,提示 expected key string
Init('{"a": "../av", "b": "../bv"}')
第 1 条附言 · 2019 年 2 月 18 日
C 函数参数类型是:const char *
10 条回复 • 2019-02-19 19:54:59 +08:00
|
1
lynskylate 2019 年 2 月 17 日 via Android
...你先确认下你 python 版本,c 默认接受是 char*的话,ctypes 传的参数必须是 bytes
|
|
2
xd314697475 2019 年 2 月 17 日
你把 c 的函数接口类型确定了
Init ( char *x ) 然后 python 里 s="{\"a\":\"../../av\", \"b\":\"../../bv\"}" .Init ( s ) |
|
3
ysc3839 2019 年 2 月 17 日
试试 Init('{"a": "../av", "b": "../bv"}'.encode())
如果可以的话把完整代码发上来吧。 |
|
4
css3 OP @xd314697475 这样肯定不行啊,语法都是错误,python 双引号中,不能再用双引号啊
|
|
5
css3 OP @xd314697475 忽略 4 楼我说的,这样是不行的,就是我主帖里边的报的错:expected key string
|
推荐学习书目
› 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