【问题标题】:Python dictionary or json to PHP ArraryPython 字典或 json 到 PHP 数组
【发布时间】:2019-05-31 17:26:56
【问题描述】:

我见过多个线程将 python 字典转换为 json,但没有显示如何将 python 字典或 json 数组保存到 PHP 数组。我继承了一个需要修改的 PHP 数组文件。通过另一个或两个线程的帮助,我能够做到这一点。我知道能够打开现有的 php 数组文件,进行必要的更改并存储到 python 字典。我已将其保存到 json 数组文件中,但需要将其恢复为如下所示的原始格式,以便现有脚本能够访问数据。

<?php
error_reporting(0);
$items=array (
0 =>
array (
'name' => 'Ted',
'size' => 'Large',
'sleeve' => 'Short',
'color' => 'Red',
),

);
$unObiect->items = $items;
$json = json_encode($unObiect);
echo($json);
?>

目前正在使用:

with open('data.json', 'w') as outfile:
        json.dump(r, outfile, sort_keys=True, indent=4, ensure_ascii=False)

其中 r 是 python 字典。该数组的结果如下所示:

{
    "items": [
        {
            "name": 'Ted',
            "size": 'Large',
            "sleeve": 'Short,
            "color":  'Red',
        },

有没有办法用字典或json数组保留php数组样式?

参考副本不一样。我不想用 PHP 解析 json,我想用 Python 保存到 PHP 数组。

编辑: 忽略此线程中对 JSON 的所有引用。我只希望以所示格式将 Python 字典保存到 PHP 数组中。

【问题讨论】:

  • json_decode ?我一定误解了这个问题。我会再读一遍。
  • 你能解释一下你所说的“得到原始格式”和“保留 php 数组样式”是什么意思吗?如果可能的话,也许展示一个你想要得到的输出的例子?
  • 第一部分是实际的 PHP 代码,这就是你想要从 JSON 生成的吗?
  • 实际上 PHP 脚本只生成 JSON。为什么不直接使用 python 创建相同的 JSON 并将 PHP 排除在外呢?还是其他 PHP 脚本从该脚本获取数据的问题?如果是这样的话,你可以直接更新PHP文件中的数据吗?

标签: php python arrays json dictionary


【解决方案1】:

如果您的 Python 生成以下 JSON:

{
    "items": [
        {
            "name": 'Ted',
            "size": 'Large',
            "sleeve": 'Short,
            "color":  'Red',
        },

如果您希望在 PHP 中访问该数据,那么您需要 json_decode():

$items = json_decode( file_get_contents( '/path/to/my/python/file.json' ), true )[ 'items' ];

【讨论】:

  • 是的,我有您发布的第二种格式,但至少我认为需要它作为第一种格式。不确定现有脚本是否能正确运行我所拥有的。
  • @snowman 我不太明白。 JSON 来自哪里?我认为您需要json_decode(),但我无法对您的帖子做出正面或反面。请写一些连贯的东西。
  • json 来自于将 python 字典转换为 json。我不必拥有 json,我只是想将字典或 json 数组获取到 PHP 数组。
  • 简单,我需要将 Python 字典保存到 PHP 数组中。忘记json。只是认为将 json 转换为 PHP 数组会比字典更容易。
  • @snowman 现在更有意义了。事实是没有直接的 Python 字典到 PHP 数组传输机制。两种编程语言都有自己的内部结构来表示数据。 JSON 是在编程语言之间发送数据的常见中间人,对于这种情况绝对是正确的工具。我会相应地更新我的答案,但请注意,您的问题与您在此处的评论中描述的完全相反...
猜你喜欢
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 2013-02-23
  • 2010-12-04
相关资源
最近更新 更多