>> obj = json.loads(s) >>> obj['key-6ren">
gpt4 book ai didi

PHP->Python JSON 问题

转载 作者:太空宇宙 更新时间:2023-11-04 01:07:55 25 4
gpt4 key购买 nike

我做错了什么? Python3:

>>> import json
>>> s = "\"{'key': 'value'}\""
>>> obj = json.loads(s)
>>> obj['key']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: string indices must be integers

给定的 JSON 字符串由来自 php 的 json_encode() 生成

Real string: {sessionid:5,file:\/home\/lol\/folder\/folder\/file.ttt}.

更新:问题是因为我将 json 字符串作为命令行传输到 php 中的 shell_exec,并使用 sys.argv[1] 读取它>...所以引号被 shell 删除。

PHP 代码(使用 shell_exec 运行 python 脚本)

$arg = json_encode(['sessionid' => $session->getId(), 'file' => $filename]);
shell_exec('python3 script.py ' . $arg);

Python代码:

import json, sys
s = json.loads(sys.argv[1]) #fails already

最佳答案

看看这个 JSON:

"\"{'key': 'value'}\""

您有一个包含转义引号的字符串,后跟一个类似字典的对象,然后是一个转义引号。当您尝试对此进行解码时,您会得到以下结果:

"{'key': 'value'}"

那是一个字符串,不是字典。

关于PHP->Python JSON 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29397439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com