php - 使用 PHP 解析 Python 列表

标签 php python json

有没有办法在 PHP 中解析 Python 列表?

我有来自 Python 的数据存储在 MySQL 中,如下所示:

[{u'hello: u'world'}]

并且需要在PHP脚本中使用它。数据是有效的 JSON,唯一的区别是那些前导的 u'

所以我可以将所有 u' 替换为 ',然后将所有 ' 替换为 " 来获取它到 json 中。当我替换所有内容时,如果实际值中有 ' ,它也会被 " 替换并破坏 json。

所以..我尝试了很多东西,但没有一个能够解析正确的json,因此我的问题是:有没有办法在PHP中解析Python生成的列表/类似json的数据?我不介意使用一些第三方库等,只是想解析数据......

最佳答案

如果您有权访问 python,则可以从命令行将其转换为 json。 这是一个例子。

$ echo "{u'key': u'value'}" |\
  python -c "import sys, json, ast; print(json.dumps(ast.literal_eval(sys.stdin.read())))"

{"key": "value"}

这是 python oneliner 的更好格式版本:

import sys, json, ast
data = ast.literal_eval(sys.stdin.read())
print(json.dumps(data))

通过使用ast.literal_eval我们可以评估 python 字典文字,而不是常规的 eval,而不必担心潜在的代码执行漏洞。

关于php - 使用 PHP 解析 Python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35177807/

相关文章:

php - 如何解决 session 问题?

python - 如何将自定义函数应用于 xarray.DataArray.coarsen.reduce()?

python - 获取 AxesSubplot 中的 AxesImage 实例

php - Symfony 和 JMSSerialier,无法添加监听器来添加额外字段

php - 为每个id生成不同的链接

php - 如果 strpos 不完全为假,如何返回真?

javascript - PHP回显纯文本

python - 读取带有非标准时间戳列的大型 csv 文件

iphone - 在Google JSON之外获取邮政编码

ajax - 将 Map<String,String> 传递给 springMVC Controller