JSON::GeneratorError: source sequence is illegal/malformed utf-8尝试将哈希转换为json字符串时出错.我想知道这是否与编码有关,我怎么能让to_json只是对待\ xAE?
$ irb
2.0.0-p247 :001 > require 'json'
=> true
2.0.0-p247 :002 > a = {"description"=> "iPhone\xAE"}
=> {"description"=>"iPhone\xAE"}
2.0.0-p247 :003 > a.to_json
JSON::GeneratorError: source sequence is illegal/malformed utf-8
from (irb):3:in `to_json'
from (irb):3
from /Users/cchen21/.rvm/rubies/ruby-2.0.0-p247/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud) 为方便起见,我编写了一个简单的toJSON原型,用于处理我知道安全的JSON:
String.prototype.toJSON = function () {
return JSON.parse(this.valueOf());
};
Run Code Online (Sandbox Code Playgroud)
我在测试我的网络服务时使用它.不幸的是,即使这个简单的测试
var v0 = '{"echo":"hello_world"}'.toJSON(), v1 = {"echo": "hello_world"};
Run Code Online (Sandbox Code Playgroud)
它失败:
console.log(v0 == v1); // false
console.log(v0 === v1); // false
console.log(v0.echo == v1.echo); // true
console.log(v0.echo === v1.echo); // true
Run Code Online (Sandbox Code Playgroud)
我不知道导致这个问题的JavaScript是什么?
我在使用 Gson 序列化/反序列化此类时遇到问题:
public class Test {
@SerializedName("id")
private String mId;
public String getId() { return mId; }
public static Test fromJson(String json) { return new Gson().fromJson(json, Test.class); }
public String toJson() { return new Gson().toJson(this, Test.class); }
}
Run Code Online (Sandbox Code Playgroud)
如果我运行这个:
Test test = Test.fromJson("{\"id\":\"1465988493\"}");
Log.i(TAG, "Test: " + test.toJson());
//Log.i(TAG, "Test id: " + test.getId());
Run Code Online (Sandbox Code Playgroud)
它打印:
测试: {}
但是如果我运行这个:
Test test = Test.fromJson("{\"id\":\"1465988493\"}");
Log.i(TAG, "Test: " + test.toJson());
Log.i(TAG, "Test id: " + test.getId());
Run Code Online (Sandbox Code Playgroud)
它按预期工作并打印:
测试:{"id":"1465988493"}
测试编号:1465988493
所以在调用 toJson 之后调用 …
我正在尝试向_json 发送一个熊猫数据框,但我在日期方面遇到了一些问题。我得到了一个额外的 \ 以便我的记录看起来像Updated:09\/06\/2016 03:09:44. 是否可以不添加这个额外的\?我假设它是某种转义字符,但我无法找到有关此的任何其他信息。
我一直在调整各种参数,但我没有任何运气 df[0:10].to_json('splunkJsonFormat.txt', orient='records', date_format='ISO8601')
样本数据:
b_Updated,
Updated:09/06/2016 03:09:44,
Updated:06/29/2016 08:16:52,
Updated:09/07/2016 07:54:37,
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的aeson对象列表
[object ["key1" .= "value1"], object ["key2" .= "value2"]]
Run Code Online (Sandbox Code Playgroud)
我想将它们合并为像这样的单个aeson对象
object ["key1" .= "value1", "key2" .= "value2"]
Run Code Online (Sandbox Code Playgroud)
当使用其他语言的JSON数据(合并操作)时,这是非常标准的,但我在Aeson库中看不到任何类似的东西.
我只是遗漏了一些东西,可以用一些标准的haskell功能来完成吗?我试过使用,sequence但似乎JSON Value不是monad所以我不能这样做.
我不需要处理深度合并或重复键,我只想生成类似的东西
{
"key1": value1,
"key2": value2
}
Run Code Online (Sandbox Code Playgroud)
从
[{ "key1": value1 }, { "key2": value2 }]
Run Code Online (Sandbox Code Playgroud) 将 pandas dataframe 转换为 json 时出现以下错误
OverflowError:编码字符串时不支持 UTF-8 序列长度
这是代码
bytes_to_write = data.to_json(orient='records').encode()
fs = s3fs.S3FileSystem(key=aws_access_key_id, secret=aws_secret_access_key)
with fs.open(file, 'wb') as f:
f.write(bytes_to_write)
Run Code Online (Sandbox Code Playgroud)
而尝试转换为json的数据包含更多utf-8代码
怎么解决这个问题呢?
我有一个具有以下类型的 pandas:
id 14 non-null int64
class 14 non-null int64
action.start 6 non-null float64
action.end 6 non-null float64
action.text 6 non-null object
action.lemma 6 non-null object
Run Code Online (Sandbox Code Playgroud)
当我运行df.to_json('output.json',orient='index')(尝试任何东方选项)时,它不断崩溃并出现错误:
OverflowError: Maximum recursion level reached
Run Code Online (Sandbox Code Playgroud)
有什么想法如何解决这个问题吗?
这个问题与这篇文章相关。
我尝试了以下代码:
import 'dart:convert';
/*server side Post class */
class Post {
int post_id;
String title;
String description;
DateTime posted_at;
DateTime last_edited;
String user;
String editor;
int up_votes;
int down_votes;
int total_votes;
String links_to;
List<String> tags = new List();
Post.fromSQL(List sql_post) {
//initialization code, unrelated.
}
Map toJson(){
Map fromObject = {
'post_id' : post_id,
'title' : title,
'description' : description,
'posted_at' : posted_at,
'last_edited' : last_edited,
'user' : user,
'editor' : editor,
'up_votes' : up_votes,
'dwon_votes' : down_votes, …Run Code Online (Sandbox Code Playgroud) 我有以下数据,我需要做的是应用聚合函数,然后是groupby.
我的数据如下: data.csv
id,category,sub_category,count
0,x,sub1,10
1,x,sub2,20
2,x,sub2,10
3,y,sub3,30
4,y,sub3,5
5,y,sub4,15
6,z,sub5,20
Run Code Online (Sandbox Code Playgroud)
在这里,我试图通过子类别明智地获得计数.之后,我需要以JSON格式存储结果.以下代码帮助我实现了这一目标.test.py
import pandas as pd
df = pd.read_csv('data.csv')
sub_category_total = df['count'].groupby([df['category'], df['sub_category']]).sum()
print sub_category_total.reset_index().to_json(orient = "records")
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了以下格式.
[{"category":"x","sub_category":"sub1","count":10},{"category":"x","sub_category":"sub2","count":30},{"category":"y","sub_category":"sub3","count":35},{"category":"y","sub_category":"sub4","count":15},{"category":"z","sub_category":"sub5","count":20}]
Run Code Online (Sandbox Code Playgroud)
但是,我想要的格式如下:
{
"x":[{
"sub_category":"sub1",
"count":10
},
{
"sub_category":"sub2",
"count":30}],
"y":[{
"sub_category":"sub3",
"count":35
},
{
"sub_category":"sub4",
"count":15}],
"z":[{
"sub_category":"sub5",
"count":20}]
}
Run Code Online (Sandbox Code Playgroud)
按照讨论@ 如何将pandas DataFrame结果转换为用户定义的json格式,我替换了最后2行的test.pywith,
g = df.groupby('category')[["sub_category","count"]].apply(lambda x: x.to_dict(orient='records'))
print g.to_json()
Run Code Online (Sandbox Code Playgroud)
它给了我以下输出.
{"x":[{"count":10,"sub_category":"sub1"},{"count":20,"sub_category":"sub2"},{"count":10,"sub_category":"sub2"}],"y":[{"count":30,"sub_category":"sub3"},{"count":5,"sub_category":"sub3"},{"count":15,"sub_category":"sub4"}],"z":[{"count":20,"sub_category":"sub5"}]}
Run Code Online (Sandbox Code Playgroud)
虽然上面的结果有点类似于我想要的格式,但我无法在这里执行任何聚合功能,因为它会抛出错误说'numpy.int64' object has no attribute 'to_dict'.因此,我最终得到了数据文件中的所有行.
有人可以帮助我实现上述JSON格式吗?
我需要将数据帧从后端发送到前端,因此首先需要将其转换为 JSON 可序列化的对象或直接转换为 JSON。问题是我有一些没有唯一列的数据框。我已经研究了orient参数、to_json()方法to_dict(),from_dict()但仍然无法让它工作......
目标是能够将 df 转换为可序列化的 json,然后返回到其初始状态。
我也很难使用 pd.read_clipboard 复制粘贴它,因此我包含了一个导致问题的示例 df 作为图像(抱歉!)。
我正在使用 pyspark 中的 to_json 将 dataframe 中的结构列转换为 json 列,但少数结构字段中的空值在 json 中被忽略,我不希望忽略空值。
这个问题的答案可能非常简单,但经过几个小时的搜索,我真的找不到它。
我正在尝试使用 Django 从 pandas 数据帧返回 JsonResponse。我尝试过的众多事情之一如下:
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import pandas as pd
@csrf_exempt
def do_request(request):
result = pd.DataFrame({'bla':[1,2,3],'bla2':['a','b','c']}).to_json(orient='records')
return JsonResponse(result, safe = False)
Run Code Online (Sandbox Code Playgroud)
以下最终返回:
"[{\"bla\":1,\"bla2\":\"a\"},{\"bla\":2,\"bla2\":\"b\"},{\"bla\":3,\"bla2\":\"c\"}]"
事实上我希望它返回:
'[{"bla":1,"bla2":"a"},{"bla":2,"bla2":"b"},{"bla":3,"bla2":"c"}]'
我有以下 ADT 实现:
data FeatureValue =
FvInt Int
| FvFloat Float
| FvText Text
| FvBool Bool
deriving Show
data ApiResponse =
Online [[Maybe FeatureValue]]
| Offline [[[Maybe FeatureValue]]]
deriving Show
Run Code Online (Sandbox Code Playgroud)
要编码的示例值可能是:
example :: ApiResponse
example =
Online [
[Just (FvInt 10), Nothing, Just (FvText "foo"), Just (FvFloat 1.42)],
[Nothing, Just (FvBool False), Just (FvText "bar"), Nothing]
]
Run Code Online (Sandbox Code Playgroud)
这将导致以下 JSON:
[
[10, null, "foo", 1.42],
[null, false, "bar", null]
]
Run Code Online (Sandbox Code Playgroud)
我正在努力研究如何特别地派生ToJSON实例FeatureValue。使用 Aeson 进行 ADT 编码的文档特别稀少(例如,其他很棒的 Aelve …
to-json ×13
json ×6
pandas ×6
python ×5
aeson ×2
haskell ×2
utf-8 ×2
android ×1
dart ×1
dataframe ×1
django ×1
gson ×1
java ×1
javascript ×1
jsonresponse ×1
pyspark ×1
python-2.7 ×1
python-3.x ×1
ruby ×1
struct ×1