Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python传递一个(Json)-字符串到PHP以创建一个.Json文件_Php_Python_Json_String - Fatal编程技术网

从Python传递一个(Json)-字符串到PHP以创建一个.Json文件

从Python传递一个(Json)-字符串到PHP以创建一个.Json文件,php,python,json,string,Php,Python,Json,String,我用Python(2.7.)编写了一个测验生成器来生成JSON字符串。最后,它清除了剪贴板并将JSON字符串附加到剪贴板。 然后打开“myjson.com”,将剪贴板的内容粘贴到表单并保存 所有这些都像我想的那样起作用 但问题是,我不知道如何将URL从“myjson站点”保存到某个我可以进行fetch()-查询以获取所有条目的地方。 我试图将生成的URL从“myjson.com”粘贴到“”((这也起作用)) 但我无法获取条目,因为“CORS”事件… 无法通过fetch()获取条目… 所以我的新计

我用Python(2.7.)编写了一个测验生成器来生成JSON字符串。
最后,它清除了剪贴板并将JSON字符串附加到剪贴板。 然后打开“myjson.com”,将剪贴板的内容粘贴到表单并保存

所有这些都像我想的那样起作用

但问题是,我不知道如何将URL从“myjson站点”保存到某个我可以进行fetch()-查询以获取所有条目的地方。 我试图将生成的URL从“myjson.com”粘贴到“”((这也起作用))
但我无法获取条目,因为“CORS”事件…
无法通过fetch()获取条目…

所以我的新计划是在我的服务器上创建一个PHP文件,将我的Python字符串传递给它。然后PHP-“Site”应该获取字符串,并在服务器上编写一个.json文件(这样我就能够获得/json目录的所有条目)
我对PHP一无所知,但我希望它能工作:)

我的Python程序生成如下字符串:

[
  {
    "num": "0",
    "tpp": "Die Antwort auf alle Fragen ist und bleibt... !",
    "pic": "https://junialeigh.files.wordpress.com/2010/10/8pysozionbxlkxqwy8qg6cgd_500.jpg",
    "val": "",
    "sol": "",
    "ans": [],
    "lnk": "",
    "question": "Was ist die Antwort auf alle Fragen..?",
    "answers": [
      "Blue",
      "42",
      "Red",
      "Purple",
      "7",
      "PI"
    ],
    "correct": 1
  },
  {
    "num": "1",
    "tpp": "",
    "pic": "https://de.hdyo.org/assets/ask-question-2-fb180173e13f21ad6ae73ba29b08cd02.jpg",
    "val": "",
    "sol": "",
    "ans": [],
    "lnk": "",
    "question": "Warum",
    "answers": [
      "Blue",
      "Weiss nicht",
      "Red",
      "Darum",
      "Purple"
    ],
    "correct": 3
  }
]
它现在应该将此字符串发送到一个PHP文件,该文件可以将“name”.json文件写入我的/json目录中的服务器。

为什么我不能这样做。(也许是因为我完全不知道PHP)

最后是我的问题……
如何将此字符串传递到PHP文件,以生成所需的“name”.json文件…
那不可能那么难。。。但是我读了那么多。。。我到处都只看到括号……
有什么建议吗 PS:我还将.json文件写入本地计算机,上传“name”.json文件而不是试图将字符串传递到PHP文件会更容易吗?

我需要休息一下。。

更新的问题
Python Tkinter窗口如下所示

在底部,您可以看到标签=“QuizName”和一个条目表单。 如果完成测验,python将获得“QuizName”表单的名称,并将.json文件保存在硬盘驱动器上的script+/json
目录下。示例:

C:\py_test\json\"QuizName"+ .json
这没有问题
现在,我应该将该文件发送到我网站上的“upload.php”中,保存到我的服务器上。
我发现了一个简单的“upload.php”文件,内容如下:

`
<?php
$folder = "json/";
$path = $folder . basename( $_FILES['file']['name']); 
if(move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
echo "Die Datei ".  basename( $_FILES['file']['name']). " wurde hochgeladen";
} else{
    echo "Fehler!";
}
?>`
`
`

也可以正常工作…
但它不像我想要的那么友好。。。Python脚本应该自己上传*.json文件。。。没有选择我想上传的内容。。。 Python程序知道如何调用该文件…
那么,我如何跳过“选择您的文件”-包含正确数据的PHP…

因此,当我完成Python中的测验时,它将被上传…

以下是如何将列表写入Python中的任何文件

import os
import json

json_list = [
{
    "num": "0",
    "tpp": "Die Antwort auf alle Fragen ist und bleibt... !",
    "pic": "https://junialeigh.files.wordpress.com/2010/10/8pysozionbxlkxqwy8qg6cgd_500.jpg",
    "val": "",
    "sol": "",
    "ans": [],
    "lnk": "",
    "question": "Was ist die Antwort auf alle Fragen..?",
    "answers": [
      "Blue",
      "42",
      "Red",
      "Purple",
      "7",
      "PI"
    ],
    "correct": 1
  },{
    "num": "1",
    "tpp": "",
    "pic": "https://de.hdyo.org/assets/ask-question-2-fb180173e13f21ad6ae73ba29b08cd02.jpg",
    "val": "",
    "sol": "",
    "ans": [],
    "lnk": "",
    "question": "Warum",
    "answers": [
      "Blue",
      "Weiss nicht",
      "Red",
      "Darum",
      "Purple"
    ],
    "correct": 3
  }
  ]

# for obj in json_list:
#   print(obj)


file = open( os.getcwd() + '/../../files/fruits.json', 'a')

file.write(json.dumps(json_list,indent=4))

file.close();
确保文件的路径正确

一旦您写入(在本例中附加)文件,您就可以用php读取该文件

<?php

$myfile = dirname(__FILE__) . "/files/fruits.json";

if (file_exists($myfile)) {
    $get_fruits = file_get_contents($myfile);
    print_r(json_decode($get_fruits));
}

首先。。。对不起,我提了个愚蠢的问题。。。。
睡了一会儿之后一切都很好

我在QuizGenerator.py中添加了以下内容:

quizName = qName.get()
outfile = open(quizName + '.json', 'w')
outfile.write(jsonData)
outfile.close()

url = 'http://****myURL****/upload.php'
upload = quizName + '.json'
files = {'file': open(upload, 'rb')}
r = requests.post(url, files=files)
my upload.php现在看起来像这样:

<?php
    $folder = "json/";
    $path = $folder. basename($_FILES['file']['name']);
    print_r($_FILES);
    move_uploaded_file($_FILES["file"]["tmp_name"],$path);
?>


睡眠很好:-)

谢谢你的回答,当文件已经上传到我想要的目录时,从PHP读取的内容工作得很好。。。但我的问题是(现在),如何从我的Python脚本将生成的*.json文件提交到我的上载PHP站点