我有此文件JSON:
我想用python读取此文件,但是此代码报告一个错误。
{ tipoGrafico: 'Multi Serie Chart',
min_value: '1',
max_value: '1',
min_strategy: '2',
max_strategy: '3',
mutation: '4',
cxpb: '5',
mutpb: '6',
value_tournSize: '7',
pop_size: '100'
}
我的代码python:
import json
import sys
print("nome del json: ",sys.argv[1])
data = json.load(open(sys.argv[1]))
data["tipoGrafico"]
但是我有这个错误:
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
答案 0 :(得分:1)
您的文件不是有效的JSON文件-请参见Single vs double quotes in JSON和JSON standard。实际上,它甚至不是有效的python字典,因为键没有包含在任何引号中。
要读取文件,您需要进行如下更改:
{ "tipoGrafico": "Multi Serie Chart",
"min_value": "1",
"max_value": "1",
"min_strategy": "2",
... }
此外,为确保正确处理和关闭文件,我建议在打开文件时使用with
语句:
with open(sys.argv[1]) as json_file:
data = json.load(json_file)
data["tipoGrafico"]
答案 1 :(得分:1)
此“ JSON”实际上是有效的YAML,因此您可以简单地使用yaml
模块加载它(在安装pyyaml
软件包之后):
import yaml
import sys
print("nome del yaml: ",sys.argv[1])
data = yaml.load(open(sys.argv[1]))
data["tipoGrafico"]
答案 2 :(得分:0)
我使用此js从我的应用程序中获取此“ json”:
$(document).ready(function() {
$("#submit").on('click', function(){
// send ajax
$.ajax({
url: 'http://127.0.0.1:8081/', // url where to submit the request
type : "POST", // type of action POST || GET
dataType : 'json', // data type
data : $("#form").serialize(), // post data || get data
success : function(result) {
// you can see the result from the console
// tab of the developer tools
console.log(result);
},
error: function(xhr, resp, text) {
console.log(xhr, resp, text);
}
})
});
});
在此服务器节点上:
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
var jsonParser = bodyParser.json();
var urlencodedParser = bodyParser.urlencoded({ extended: false });
var obj = {
table: []
};
app.post("/", urlencodedParser, function(request, response) {
console.log(request.body); //This prints the JSON document received (if it is a JSON document)
obj.table.push(request.body);
});
var json = JSON.stringify(obj);
var fs = require('fs');
fs.writeFile('myjsonfile.json', json, 'utf8');
//Start the server and make it listen for connections on port 8080
app.listen(8081);
如何获取正确的json文件?
答案 3 :(得分:0)
这不是有效的JSON。
试试这个:
{
"tipoGrafico": "Multi Serie Chart",
"min_value": "1",
"max_value": "1",
"min_strategy": "2",
"max_strategy": "3",
"mutation": "4",
"cxpb": "5",
"mutpb": "6",
"value_tournSize": "7",
"pop_size": "100"
}