从 CSV 文件中提取 JSON 数据

用户2447806

我正在尝试提取 JSON 数据,它是 CSV 文件中的一列。到目前为止,我已经以正确的格式提取了列,但只有在变量类型为 factor 时,格式才正确。但是我无法使用jsonlite将因子转换为 json 文件

[1] {"id":509746197991998767,"visibility":{"percentage":100,"time":149797,"visible1":true,"visible2":false,"visible3":false,"activetab":true},"interaction":{"mouseovercount":1,"mouseovertime":1426,"videoplaytime":0,"engagementtime":0,"expandtime":0,"exposuretime":35192}}

另一种方法是stringsAsFactors = F在导入时使用,但我正在努力使格式正确,其中每个条目如下所示:

[1] "{\"id\":509746197991998767,\"visibility\":{\"percentage\":100,\"time\":149797,\"visible1\":true,\"visible2\":false,\"visible3\":false,\"activetab\":true},\"interaction\":{\"mouseovercount\":1,\"mouseovertime\":1426,\"videoplaytime\":0,\"engagementtime\":0,\"expandtime\":0,\"exposuretime\":35192}}"

我在这里遗漏了一些明显的东西吗?我只是想提取JSON位于 CSV 文件中的文件。

这是 CSV 文件的一个小例子:

"","CookieID","UnloadVars"
"1",-8857188784608690176,"{""id"":509746197991998767,""visibility"":{""percentage"":100,""time"":149797,""visible1"":true,""visible2"":false,""visible3"":false,""activetab"":true},""interaction"":{""mouseovercount"":1,""mouseovertime"":1426,""videoplaytime"":0,""engagementtime"":0,""expandtime"":0,""exposuretime"":35192}}"
"2",-1695626857458244096,"{""id"":2917654329769114342,""visibility"":{""percentage"":46,""time"":0,""visible1"":false,""visible2"":false,""visible3"":false,""activetab"":true}}"
"3",437299165071669184,"{""id"":2252707957388071809,""visibility"":{""percentage"":99,""time"":10168,""visible1"":true,""visible2"":false,""visible3"":false,""activetab"":true},""interaction"":{""mouseovercount"":0,""mouseovertime"":0,""videoplaytime"":0,""engagementtime"":0,""expandtime"":0,""exposuretime"":542},""clicks"":[{""x"":105,""y"":449}]}"
"4",292660729552227520,""
"5",7036383942916227072,"{""id"":2299674593327687292,""visibility"":{""percentage"":76,""time"":1145,""visible1"":true,""visible2"":false,""visible3"":false,""activetab"":true},""interaction"":{""mouseovercount"":0,""mouseovertime"":0,""videoplaytime"":0,""engagementtime"":0,""expandtime"":0,""exposuretime"":74},""clicks"":[{""x"":197,""y"":135},{""x"":197,""y"":135}]}"

问候,

弗雷德里克。

奥雷勒
df <- readr::read_csv('"","CookieID","UnloadVars"
"1",-8857188784608690176,"{""id"":509746197991998767,""visibility"":{""percentage"":100,""time"":149797,""visible1"":true,""visible2"":false,""visible3"":false,""activetab"":true},""interaction"":{""mouseovercount"":1,""mouseovertime"":1426,""videoplaytime"":0,""engagementtime"":0,""expandtime"":0,""exposuretime"":35192}}"
"2",-1695626857458244096,"{""id"":2917654329769114342,""visibility"":{""percentage"":46,""time"":0,""visible1"":false,""visible2"":false,""visible3"":false,""activetab"":true}}"
"3",437299165071669184,"{""id"":2252707957388071809,""visibility"":{""percentage"":99,""time"":10168,""visible1"":true,""visible2"":false,""visible3"":false,""activetab"":true},""interaction"":{""mouseovercount"":0,""mouseovertime"":0,""videoplaytime"":0,""engagementtime"":0,""expandtime"":0,""exposuretime"":542},""clicks"":[{""x"":105,""y"":449}]}"
"4",292660729552227520,""
"5",7036383942916227072,"{""id"":2299674593327687292,""visibility"":{""percentage"":76,""time"":1145,""visible1"":true,""visible2"":false,""visible3"":false,""activetab"":true},""interaction"":{""mouseovercount"":0,""mouseovertime"":0,""videoplaytime"":0,""engagementtime"":0,""expandtime"":0,""exposuretime"":74},""clicks"":[{""x"":197,""y"":135},{""x"":197,""y"":135}]}"',
col_types = "-cc")

使用jsonlite::fromJSON在每个单独的值,则tidyr::unnest

library(dplyr)

f <- function(.x) 
  if (is.na(.x) || .x == "") data.frame()[1, ] else 
    as.data.frame(jsonlite::fromJSON(.x))

df %>% 
  tidyr::unnest(UnloadVars = lapply(UnloadVars, f)) %>% 
  mutate_at(vars(ends_with("id")), as.character)

# A tibble: 6 x 16
#               CookieID                  id visibility.percentage visibility.time visibility.visible1 visibility.visible2 visibility.visible3 visibility.activetab interaction.mouseovercount interaction.mouseovertime interaction.videoplaytime interaction.engagementtime interaction.expandtime interaction.exposuretime clicks.x clicks.y
#                  <chr>               <chr>                 <int>           <int>               <lgl>               <lgl>               <lgl>                <lgl>                      <int>                     <int>                     <int>                      <int>                  <int>                    <int>    <int>    <int>
# 1 -8857188784608690176  509746197991998784                   100          149797                TRUE               FALSE               FALSE                 TRUE                          1                      1426                         0                          0                      0                    35192       NA       NA
# 2 -1695626857458244096 2917654329769114112                    46               0               FALSE               FALSE               FALSE                 TRUE                         NA                        NA                        NA                         NA                     NA                       NA       NA       NA
# 3   437299165071669184 2252707957388071936                    99           10168                TRUE               FALSE               FALSE                 TRUE                          0                         0                         0                          0                      0                      542      105      449
# 4   292660729552227520                <NA>                    NA              NA                  NA                  NA                  NA                   NA                         NA                        NA                        NA                         NA                     NA                       NA       NA       NA
# 5  7036383942916227072 2299674593327687168                    76            1145                TRUE               FALSE               FALSE                 TRUE                          0                         0                         0                          0                      0                       74      197      135
# 6  7036383942916227072 2299674593327687168                    76            1145                TRUE               FALSE               FALSE                 TRUE                          0                         0                         0                          0                      0                       74      197      135

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从python中.json文件中给定格式的.csv文件中提取数据?

来自分类Dev

从CSV文件中提取Unicode数据

来自分类Dev

从C ++文件中提取JSON数据

来自分类Dev

从JSon文件中提取数据的Null参考

来自分类Dev

如何从json文件中提取数据

来自分类Dev

将数据从JSON文件提取到CSV

来自分类Dev

从csv中提取数据

来自分类Dev

从单个csv文件中提取多个数据文件

来自分类Dev

使用Python从CSV文件中提取列数据

来自分类Dev

从C ++的CSV文件中提取特定数据

来自分类Dev

使用Python从CSV文件中提取列数据

来自分类Dev

从文本文件中提取数据到csv

来自分类Dev

无法获取从csv文件中提取的正确数据

来自分类Dev

使用熊猫从特殊条件的CSV文件中提取数据

来自分类Dev

R:使用窗口函数从csv文件中提取数据

来自分类Dev

从 CSV 文件中提取某个月份的数据

来自分类Dev

使用 Python 从 CSV 文件中提取信息/清理数据

来自分类Dev

如何从Python中的CSV文件中提取JSON对象?

来自分类Dev

无法从工厂AngularJS中的JSON文件中提取数据

来自分类Dev

如何从JSON文件中提取这些数据项?

来自分类Dev

如何从具有多个值的JSON文件中提取数据

来自分类Dev

是否可以从PBIX文件中提取JSON元数据?

来自分类Dev

使用javascript从嵌套的json文件中提取数据

来自分类Dev

使用 Javascript 从 JSON 文件中提取数据到 HTML

来自分类Dev

从 Imgur API 中提取数据文件 json 的问题

来自分类Dev

BigQuery - 从一组 Json 文件中提取数据

来自分类Dev

如何从下载的csv文件中提取特定数据并转置为新的csv文件?

来自分类Dev

从文件中提取数据

来自分类Dev

从JSON数组中提取数据

Related 相关文章

热门标签

归档