如何复制一个嵌套的JSON列表一个问题吗?

问题描述 投票:0回答:1

我在寻找,我使用jsonlite提取的JSON名单上的帮助。该列表中嵌入了额外的列表,还嵌入了df一起。我如何可以很容易地复制到SO张贴求助的内容?此外,一些数据是敏感的,所以我希望有一个可以随机值,或者让我轻松地操纵它们的解决方案。

r nested-lists purrr
1个回答
-1
投票

如你所知,您可以使用fromJSON()解析JSON数据

为了解析JSON数据中访问项目,你用你会同样的方法来访问其他的东西,那就是,R的存取功能$,不要忘记,它可以带你多层例如深your_data$details$result$locationHierarchy$city

下面是一些提示,帮助您轻松地复制您的数据为文本(例如复制到一个SO问题)

让我们一些数据

some_data <- iris[1, ]
some_data

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa

可以使用任何toJSON()对象 - [R(例如,数据帧,载体,元件等)转换成JSON格式

some_data_as_JSON <- toJSON(some_data)
some_data_as_JSON

# [{"Sepal.Length":5.1,"Sepal.Width":3.5,"Petal.Length":1.4,"Petal.Width":0.2,"Species":"setosa"}] 

在上面的例子,如果你试图复制/粘贴数据返回到R控制台的JSON,就会报错,因为特殊字符不正确地转义。但是,解决这个使用dput()一个简单的方法

dput(some_data_as_JSON)

# structure("[{\"Sepal.Length\":5.1,\"Sepal.Width\":3.5,\"Petal.Length\":1.4,\"Petal.Width\":0.2,\"Species\":\"setosa\"}]", class = "json")

现在,您可以复制/粘贴输出并将其指定为R对象! (所以这是一个完美的SO问题)

当anonomysing数据,你可以尝试使用随机函数像runif()产生的数字数据类型随机数据。对于字符,你可以尝试另一种随机gsub()一个字符(这不会是强大的匿名化,但也取决于你想做什么是好的)。或者你也可以使用随机生成的字符串

library(stringi)
stri_rand_strings(3, 5, pattern = "[A-Za-z0-9]")

最后一个建议:所以更倾向于使用小的可再现的例子(相对于大的),所以也许这样做将是最好的事情把你的数据的一小部分就以SO复制,或者甚至使一个全新的对象(小一应该足够)

© www.soinside.com 2019 - 2024. All rights reserved.