从Python传递一个(Json)-字符串到PHP以创建一个.Json文件
我用Python(2.7.)编写了一个测验生成器来生成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()获取条目… 所以我的新计
最后,它清除了剪贴板并将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站点