0

str_replace_all 関数を使用して、次の json で結合という用語を取り除こうとしています。正規表現をいくつか試しましたが、うまくいきませんでした。「ユニオン」の完全な文字列を取り除く方法に関する提案。これがコードです。

 library(jsonlite)

 json<- '{"open_issues":0,"union":{"avatar_url":"https://secure.gravatar.com/avatar/ed73cf7f24c091318e507d167c7b3456?d=https://a248.e.akamai.net/assets.mashups.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"ed73cf7f24c091318e507d167c7b3456","id":1556245,"login":"Toolpark","url":"https://api.mashups.com/users/Toolpark"},"owner":{"avatar_url":"https://secure.gravatar.com/avatar/ed73cf7f24c091318e507d167c7b3456?d=https://a248.e.akamai.net/assets.mashups.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"ed73cf7f24c091318e507d167c7b3456","id":1556245,"login":"Toolpark","url":"https://api.mashups.com/users/Toolpark"},"private":false,"pushed_at":"2012-07-12T11:43:31Z","size":964,"ssh_url":"vit@mashups.com:Toolpark/irma.vit","svn_url":"https://mashups.com/Toolpark/irma","updated_at":"2012-07-12T11:43:31Z","url":"https://api.mashups.com/repos/Toolpark/irma","watchers":2}'

str_replace_all(json,"union[^}]*}\s*, "")
json <- fromJSON(json)
Error: '\s' is an unrecognized escape in character string starting ""union[^}]*}\s"

最後にカンマを含むこの文字列を正確に取り除こうとしています:

"union":{"avatar_url":"https://secure.gravatar.com/avatar/ed73cf7f24c091318e507d167c7b3456?d=https://a248.e.akamai.net/assets.mashups.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"ed73cf7f24c091318e507d167c7b3456","id":1556245,"login":"Toolpark","url":"https://api.mashups.com/users/Toolpark"},

助言がありますか?

4

2 に答える 2

2

私が正しいと推測している場合、json行から「ユニオン」要素を削除するつもりです。そこで、fromJSON関数を使用して行を json に変更してから、 union要素を削除してみてください。次のコードは、ユニオンなしのリストを生成します

json1 <- ("your json line") 
my_list<- fromJSON(json1)   #convert into json format which gives you a list of elements
my_list["union"]<- NULL   #delete the union element
print(my_list)
于 2015-06-22T21:06:31.647 に答える
1

不正な構文で正規表現を使用しています。次を使用してください。

str_replace_all(json, "\"union[^}]*}\\s*,", "")

デモを見る

于 2015-06-23T03:17:44.607 に答える